我有一个格式为的xml: <
G>
<P>
<A>
<b>value b</b>
<c>value c</c>
</A>
<A>
<b>value b2</b>
<c>value c2</c>
</A>
<D>value e</D>
<E>value f</E>
</P>
</G>
有许多标签,如'A',可以多次出现。问题是,如果A出现一次输出CSV,因此xl sheet(数据导出)是:
column1 column2 column3 column4
值b值c值e值f
如果A在xl中输出两次输出为
column1 column2 column3 column4
值b值c值b2值c2值e值f
我想要它作为
column1 column2 column3 column4
值b值c值e值f
值b2值c2值e值f
制作csv我有xslt代码:
<xsl:value-of select="G/P/A"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="D"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="E"/>
<xsl:text>,</xsl:text>
答案 0 :(得分:1)
这会为您提供您想要的内容,但不会检查您的格式是否与您声明的内容不同
<xsl:for-each select="//A">
<xsl:value-of select="b"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="c"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="ancestor::P/D"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="ancestor::P/E"/>
<xsl:text>
</xsl:text>
</xsl:for-each>
并测试多行:
<G>
<P>
<A>
<b>value b</b>
<c>value c</c>
</A>
<A>
<b>value b2</b>
<c>value c2</c>
</A>
<D>value e</D>
<E>value f</E>
</P>
<P>
<A>
<b>value bx</b>
<c>value cx</c>
</A>
<A>
<b>value b2x</b>
<c>value c2x</c>
</A>
<D>value ex</D>
<E>value fx</E>
</P>
</G>
输出
value b,value c,value e,value f
value b2,value c2,value e,value f
value bx,value cx,value ex,value fx
value b2x,value c2x,value ex,value fx