【发布时间】:2013-07-23 15:09:23
【问题描述】:
我有以下 XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type='text/xsl' href='parser.xsl'?>
<NVS>
<A>
<F>007</F>
</A>
<A>-002</A>
<B>--003</B>
<C>
<D>------005</D>
</C>
<E>-006</E>
</NVS>
我想为每个节点打印一棵树,例如:
/NVS/A/
/NVS/A/F/
/NVS/A/
/NVS/B/
/NVS/C/
/NVS/C/D
/NVS/E/
我尝试了一些 XSL,但买不起正确的结果。 最好的 XSL 是:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="ISO-8859-1" doctype-public="-//W3C//DTD XHTML//EN" doctype-system="http://www.w3.org/TR/2001/REC-xhtml11-20010531" indent="yes"/>
<xsl:template match="/*">
<html>
<body>
<xsl:for-each select=".">/<xsl:value-of select="."/>
<br/>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
而且我也试过“for-each”,比如:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="ISO-8859-1" doctype-public="-//W3C//DTD XHTML//EN" doctype-system="http://www.w3.org/TR/2001/REC-xhtml11-20010531" indent="yes"/>
<xsl:template match="/*/*">
<xsl:for-each select=".">/<xsl:value-of select="."/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
但不是更好。而且我只是打印值,而我只想要节点的名称。
有什么想法吗?
【问题讨论】:
标签: xml xslt tree xmlnode xmlspy