Вот мой шаблон:
<xsl:template name="rec">
<xsl:for-each select="*">
<div class="{local-name()}">
<xsl:for-each select="@*">
<xsl:attribute name="data-{local-name()}">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:for-each>
<xsl:value-of select="text()" />
<xsl:call-template name="rec" />
</div>
</xsl:for-each>
</xsl:template>
Учитывая документ, подобный так:
<test>
<item value="1">Item 1 Text</item>
<item value="2">Item 2 Text</item>
</test>
Преобразование выше превратит его в:
<div class="test">
<div class="item" data-value="1">Item 1 Text</div>
<div class="item" data-value="2">Item 2 Text</div>
</div>
ПроблемаУ меня есть то, что это преобразование не уважает текстовые узлы должным образом, и у меня недостаточно фона с XSLT, чтобы выяснить, как это исправить.Вот проблема: учитывая xml, вот так:
<para>This is a <emphasis>paragraph</emphasis> people!</para>
Я хотел бы увидеть следующий вывод:
<div class="para">This is a <div class="emphasis">paragraph</div> people!</div>
Проблема в том, что я не получаю это - яполучить это:
<div class="para">This is a <div class="emphasis">paragraph</div></div>
Обратите внимание на пропавших "людей!"текстовый узел.Как я могу исправить мой XSLT выше, чтобы обеспечить мне вывод, который мне нужен?