-1
У меня есть XML-файл, который я должен преобразовать в html-файл с помощью XSL.XSL: функция «для каждого выбора» работает неправильно
Мой XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="test.xsl" ?>
<Company>
<SectionA>
<Employee>Peter Barry</Employee>
<Employee>Lisa Stewart</Employee>
<Employee>Harry Rogers</Employee>
</SectionA>
<SectionB>
<Employee>Tom Riddle</Employee>
</SectionB>
</Company>
В моем HTML-файла вывод должен выглядеть следующим образом: "Питер Барри, Лиза Стюарт, Гарри Роджерс".
Проблема в том, что для каждой функции в этом случае не работает! Мой код в XSL:
<?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="/">
<html>
<body>
<h2>All</h2>
<table>
<td>
<xsl:for-each select="Company/SectionA">
<xsl:value-of select="Employee"/>
</xsl:for-each>
</td>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
В HTML это только показывает имя первого сотрудника (то есть «Питер Барри»). Как я получу это право, чтобы показать каждый элемент?
Пожалуйста показать ** воспроизводимый ** пример. Мы не можем сказать, что делает ваш код, не зная, в каком контексте он выполняется. Тем не менее, пустой 'xsl: for-each' ничего не сделает. Поместите что-нибудь в него, например. 'XSL: Значение-of'. - Также, пожалуйста, покажите свой ожидаемый результат ** как код **. –
Извините, я сейчас вставляю оба кода в мой пост! –
Кстати, '
ответ
Если вы хотите строку для каждого сотрудника в Разделе А, чем использование:
, как вы есть сейчас, вы находитесь в контексте
SectionA
и<xsl:value-of select="Employee"/>
возвращает значение первого только для дочернего сотрудника - вот как это работает в XSLT 1.0. Кроме того, вы создаете только одну ячейку таблицы и без строк.источник
2015-11-05 14:49:22
Использование для-каждого не лучший вариант в данном случае, было бы лучше, чтобы определить шаблон для обработки каждого сотрудника, как это:
источник
2015-11-05 14:57:39 Flynn1179
Смежные вопросы