0

XML の例を次に示します。

<OUT>
    <Header>
        <LineType>H</LineType>
        <DocumentType>OUT</DocumentType>
        <ClientCode>177</ClientCode>
        <OrderNumber>SP03038181</OrderNumber>
        <PayerINN>2636052865</PayerINN>
        <TotalItems>3</TotalItems>
    </Header>
    <Line>
        <LineType>I</LineType>
        <Unit>PCE</Unit>
        <OrderNumber>SP03038181</OrderNumber>
        <Party>A289217</Party>
        <field>20171031</field>
    </Line>
    <Line>
        <LineType>I</LineType>
        <OrderNumber>SP03038181</OrderNumber>
        <Party>0911082</Party>
        <field>20150731</field>
    </Line>
    <Header>
        <LineType>H</LineType>
        <DocumentType>OUT</DocumentType>
        <ClientCode>177</ClientCode>
        <OrderNumber>SP03038322</OrderNumber>
    </Header>
    <Line>
        <LineType>I</LineType>
        <OrderNumber>SP03038322</OrderNumber>
        <Party>Z10208</Party>
        <field>20141231</field>
    </Line>
</OUT>

xslt コードは次のとおりです。

 <xsl:for-each select="*/Header">                 
            <part>
                <header></header>                       
                <content>
                    <OUT>
                        <xsl:copy-of select="."/>
                        <xsl:copy-of select="../Line[OrderNumber = ./OrderNumber]"/>
                    </OUT>
                </content>                  
            </part>
</xsl:for-each>

Line問題は、現在のノードから同じ注文番号を持つすべてのノードをコピーできないことHeaderです。

<xsl:copy-of select="../Line[OrderNumber = ./OrderNumber]"/>

機能しません。すべてのLineノードをコピーします。

4

3 に答える 3