Добавление имени атрибута к переключателю с помощью XSL-T - PullRequest
0 голосов
/ 19 ноября 2018

Я создал файл XSL-T для преобразования xml-теста в форму с таблицами, проблема в том, что, поскольку вопросы создаются с помощью рекурсивного программирования, я не могу добавить к ним имя, поэтому нет никакого способазнать, с каким вопросом.

Файл XML содержит такие элементы:

<question id="question2" filter="generic">
    <foo>What console do you like the most?</foo>
    <simple-election>
        <option>Playstation 4</option>
        <option>Nintendo Switch</option>
        <option>XBox One</option>
        <option></option>
    </simple-election>
</question>

А вот файл XSL-T:

<xsl:template match="simple-election">
<xsl:for-each select="option">
    <tr>
        <td><xsl:value-of select="."/></td>
        <td><input type="radio"></input></td>
    </tr>
</xsl:for-each>
</xsl:template>

(остальная часть файла имеет начало формы, таблицы и т. д.)

Моя идея состояла в том, чтобы добавить что-то вроде этого:

<td><input name="question/@id" type="radio"></input></td>

Но я могу, кажется, получитьэто работает, любая идея?

PS: Я могу показать вам остальную часть файла, если это необходимо.

1 Ответ

0 голосов
/ 19 ноября 2018

Попробуйте:

<input name="{../../@id}" type="radio">

Или, чтобы сделать его более эффективным, запишите id в переменную:

<xsl:template match="simple-election">
    <xsl:variable name="question-id" select="../@id" />

затем используйте его как:

<input name="{$question-id}" type="radio">

Подробнее см. пути к местоположению и шаблон значения атрибута .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...