Выходные элементы управления html - имя динамического элемента управления

Я хотел бы выводить элементы управления html с помощью xslt, но мне нужно иметь возможность назвать элементы управления, чтобы я мог получить к ним доступ, когда форма вернется.

Я хотел бы иметь возможность назвать переключатель "action_" + _case_id.

<?xml version = "1.0" encoding = "utf-8"?>
<?xml-stylesheet type = "text/xsl" href = "data.xsl"?>
<NewDataSet>
  <Cases>
    <Case>
      <case_id>30</case_id>
    </Case>
  <Cases>
</NewDataSet>

<?xml version = "1.0" encoding = "iso-8859-1"?>
<xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
  <xsl:template match = "/">
     <div class = "your_action">
      Your action:<br />
      <input type = "radio" name = "?" value = "No" checked  = "true"/> nothing to report<br />
      <input type = "radio" name = "?" value = "Yes" /> memo to follow
    </div>
  </xsl:template>
</xsl:stylesheet>
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
3
0
1 332
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

<?xml version = "1.0" encoding = "utf-8"?>
<?xml-stylesheet type = "text/xsl" href = "data.xsl"?>
<NewDataSet>
  <Cases>
    <Case>
      <case_id>30</case_id>
    </Case>
  <Cases>
</NewDataSet>

<?xml version = "1.0" encoding = "iso-8859-1"?>
<xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
  <xsl:template match = "/">
     <xsl:variable name = "actionid">action_<xsl:value-of select = "Cases/Case/case_id"/></xsl:variable>
     <div class = "your_action">
      Your action:<br />
      <input type = "radio" name = "{actionid}" value = "No" checked  = "true"/> nothing to report<br />
      <input type = "radio" name = "{actionid}" value = "Yes" /> memo to follow
    </div>
  </xsl:template>
</xsl:stylesheet>

ПРИМЕЧАНИЕ: не тестировалось. Вероятно, вы захотите добавить сопоставление специально для узла Case, а не только для сопоставления корневого узла.

При обращении к переменной вам необходимо добавить к переменной префикс $:

<input type = "radio" name = "{$actionid}" value = "No" checked  = "true"/> nothing to report<br />
Ответ принят как подходящий

Использовать:

<input type = "radio" name = "{concat('action_', /*/*/*/case_id)}"
 value = "No" checked  = "true"/>

В случае изменения вашего xml-документа может потребоваться заменить символы "*" выше более подробными инструкциями по определению местоположения.

У вашего набора данных есть замечательное свойство: это дерево, каждый узел может быть идентифицирован по его пути в дереве. Я бы сказал, что лучше всего назвать элементы управления, соответствующие каждому узлу XML, таким образом, чтобы это отражало:

  1. NewDataSet_Cases_Case1_case_id1_rb.
  2. NewDataSet_Cases_Case1_case_id2_rb.

Вам просто нужен способ получить имена родительских узлов, например:

&lt;xsl:variable name = "parent1Name"
              select = "name(parent::*)" /&gt;

Другие вопросы по теме