我有一个不规则/未格式化的XML文件。结构看起来像这样 -
<Host>
<element1>type0</element1>
<element2>Fruits</element2>
<NodeA>
<element1>type1</element1>
<element2>Fruits</element2>
<NodeB>
<element1>type2</element1>
<element2>Fruits</element2>
<NodeC>
<element1>type3</element1>
<element2>Fruits</element2>
<NodeD>
<element1>type4</element1>
<element2>Vegetables</element2>
</NodeD>
</NodeC>
</NodeB>
</NodeA>
<NodeE>
<element1>type5</element1>
<element2>Fruits</element2>
<NodeF>
<element1>type6</element1>
<element2>Vegetables</element2>
</NodeF>
</NodeE>
</Host>
我想以CSV格式从XML中提取<element1>
。这意味着<element1>
的所有值都应该被提取为 -
type0,type1,type2,type3,type4,type5,type6
我已经尝试了下面的XSLT,但我得到了表格格式的元素。我无法以上述格式获取数据。 XSLT写的 -
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:template match="/">
<html>
<body>
<table border="1">
<xsl:for-each select="//element1">
<tr>
<td><xsl:value-of select="."/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
任何答案/建议都会有很大的帮助。谢谢
答案 0 :(得分:0)
如果您想要CSV结果,请删除所有HTML代码,只需添加逗号即可:
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="UTF-8" />
<xsl:template match="/">
<xsl:for-each select="//element1">
<xsl:value-of select="."/>
<xsl:if test="position()!=last()">,</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>