如何有效地转换此XML文档
<?xml version="1.0" encoding="UTF-8" ?>
<Document>
<Person>
<Entry>
<Name>Height</Name>
<Value>172</Value>
</Entry>
<Entry>
<Name>Weight</Name>
<Value>73</Value>
</Entry>
</Person>
<Person>
<Entry>
<Name>Height</Name>
<Value>180</Value>
</Entry>
<Entry>
<Name>Weight</Name>
<Value>70</Value>
</Entry>
<Entry>
<Name>Age</Name>
<Value>30</Value>
</Entry>
</Person>
<Person>
<Entry>
<Name>Height</Name>
<Value>176</Value>
</Entry>
<Entry>
<Name>Age</Name>
<Value>25</Value>
</Entry>
</Person>
</Document>
进入这个CSV文件?
"Height","Weight","Age"
"172","73",""
"180","70","30"
"176","","25"
这与这个问题不同,在这个问题中,缺失(或变化(在元素中,而不是在元素值中。
怎么样:
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" />
<xsl:template match="/Document">
<xsl:text>"Height","Weight","Age" </xsl:text>
<xsl:for-each select="Person">
<xsl:text>"</xsl:text>
<xsl:value-of select="Entry[Name='Height']/Value"/>
<xsl:text>","</xsl:text>
<xsl:value-of select="Entry[Name='Weight']/Value"/>
<xsl:text>","</xsl:text>
<xsl:value-of select="Entry[Name='Age']/Value"/>
<xsl:text>" </xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>