2

次の形式の 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 シート (データがエクスポートされる場所) が発生した場合、
列 1 列 2 列 3 列 4
値 b 値 c 値 e 値 fになることです。

A が 2 回来る場合、xl の出力は次のようになります。

column1 column2 column3 column4
value b value c value b2 value c2 value e value f column1 column2 column3 column4 value b value c value e value f value b2 value c2 value e value 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>
4

1 に答える 1

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  
于 2012-07-09T10:51:33.173 に答える