我有一个xml作为样本在
下面<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<local>
<file Date="2211-11-05" Source="ABC"/>
<group div="Global" >
<scenario type="XYZ" >
<pqr liab="123">
<ten unit="DAY">10 12 </ten>
<p>0 </p>
</pqr>
<abc asset="100">
<ten unit="DAY">11 12 </ten>
<exp>0 </exp>
</abc>
</scenario>
<Feature rating="NA" />
</group>
</local>
我想用csv格式转换它,如下所述:
div,type,liab,unit,ten,p,asset,unit2,ten2,exp,rating
Global,XYZ,123,DAY,10 12,0,100,DAY,11 12,10,NA
我已经编写了一个示例xsl,如下所示,但它没有捕获p,ten,exp等的标记值。请帮忙。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns2="http://www.example.org/B3">
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
<xsl:template match="/">
<xsl:text></xsl:text>
<xsl:text>
</xsl:text>
<xsl:for-each select="//exp">
<xsl:value-of select="ancestor::group/@div" /><xsl:text>,</xsl:text>
<xsl:value-of select="ancestor::group/scenario/@type" /><xsl:text>,</xsl:text>
<xsl:value-of select="ancestor::group/scenario/pqr/@liab" /><xsl:text>,</xsl:text>
<xsl:value-of select="ancestor::group/scenarioI /pqr/ten/@unit" /><xsl:text>,</xsl:text>
<xsl:value-of select="ancestor::group/scenario/pqr/@ten" /><xsl:text>,</xsl:text>
<xsl:value-of select="ancestor::group/scenario/pqr/@p" /><xsl:text>,</xsl:text>
<xsl:value-of select="ancestor::group/scenario/abc/@asset" /><xsl:text>,</xsl:text>
<xsl:value-of select="ancestor::group/scenario/abc/ten/@unit" /><xsl:text>,</xsl:text>
<xsl:value-of select="ancestor::group/scenario/abc/@ten" /><xsl:text>,</xsl:text>
<xsl:value-of select="ancestor::group/scenario/abc/@exp" /><xsl:text>,</xsl:text>
<xsl:value-of select="ancestor::group/Feature/@rating" /><xsl:text>,</xsl:text>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:1)
更改
<xsl:value-of select="ancestor::group/scenario/pqr/@ten"/><xsl:text>,</xsl:text>
<xsl:value-of select="ancestor::group/scenario/pqr/@p"/><xsl:text>,</xsl:text>
<xsl:value-of select="ancestor::group/scenario/abc/@exp"/><xsl:text>,</xsl:text>
到
<xsl:value-of select="ancestor::group/scenario/pqr/ten"/><xsl:text>,</xsl:text>
<xsl:value-of select="ancestor::group/scenario/pqr/p"/><xsl:text>,</xsl:text>
<xsl:value-of select="ancestor::group/scenario/abc/exp"/><xsl:text>,</xsl:text>
因为elements
不是attribute
。