Мне нужно преобразовать сложный xml в html. Некоторые узлы я могу преобразовать, но есть много узлов с неизвестным значением. здесь упрощено xmlxslt - как выводить все узлы как имя узла и значение узла
<root>
<NodeWithKnownData>
<FirstElement>blah</FirstElement>
<SecondElement>blahBlah</SecondElement>
</NodeWithKnownData>
<NodeWithUnKnownData>
<FirstUnknownElement>blah2134</FirstUnknownElement>
<SecondUnknownElement>blahBlah324523</SecondUnknownElement>
</NodeWithUnKnownData>
<NodeWithRandomNatureData>
<KnownElement>blah2134</KnownElement>
<UnknownElement>blahBlah324523</UnknownElement>
<NewUnknownElement>
<KnownNode2>test</KnownNode2>
<KnownElement>
<KnownNode3>test5654</KnownNode3>
<UnknownNode>test2342345</UnknownNode>
</KnownElement>
</NewUnknownElement>
</NodeWithRandomNatureData>
</root>
У меня есть шаблоны только для известных элементов. И я должен использовать свои шаблоны и показывать неизвестные узлы как «имя узла»: «значение». Пожалуйста, помогите мне.
Обновлено
Правило для отличить известный из неизвестных узлов - только шаблоны для известных узлов. , если я использую этот шаблон:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xhtml" omit-xml-declaration="yes"/>
<xsl:template match="root">
<xsl:apply-templates select="/NodeWithKnownData"/>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="*">
<xsl:value-of select="local-name()"/> : <xsl:value-of select="."/>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="NodeWithKnownData">
some useful actions
</xsl:template>
</xsl:stylesheet>
каждый суб-узел recursevily повторяется.
Что должно быть правилом для отличить известно от неизвестных узлов? У вас есть шаблоны xslt для всех «известных» узлов, если вы можете добавить шаблон match = «*», который «запускает все« другие »узлы. –
Я обновил свои вопросы с ответом на ваш вопрос – Bujaka