0

私はxmlを持っています:

<ShipmentUnit>
    <TrackingID>101012163322</TrackingID>
    <ShipUnitSequenceID>5</ShipUnitSequenceID>
    <Type>CRDCRT</Type>
    <DocumentReference type="parentUnit">
        <DocumentID>
            <ID>101012163322</ID>
        </DocumentID>
    </DocumentReference>
    <PointOfStagingCode>KRD001000000</PointOfStagingCode>
</ShipmentUnit>
<ShipmentUnit>
    <TrackingID>101012163322</TrackingID>
    <ShipUnitSequenceID>7</ShipUnitSequenceID>
    <Type>CRDCRT</Type>
    <DocumentReference type="parentUnit">
        <DocumentID>
            <ID>101012163322</ID>
        </DocumentID>
    </DocumentReference>
    <PointOfStagingCode>KRD001000000</PointOfStagingCode>
</ShipmentUnit>
<ShipmentUnit>
    <TrackingID>101012163346</TrackingID>
    <ShipUnitSequenceID>9</ShipUnitSequenceID>
    <Type>CRDCRT</Type>
    <PointOfStagingCode>KRD001000000</PointOfStagingCode>
</ShipmentUnit>

そして、私はグループを作りたい:

<xsl:for-each-group select="ShipmentUnit" group-by="DocumentReference[@type='parentUnit']/DocumentID/ID">

問題は、XML にノードがない場合に、その XMLgroup-byノードfor-each-groupが無視されることです。

ノードを含める方法

<ShipmentUnit>
    <TrackingID>101012163346</TrackingID>
    <ShipUnitSequenceID>9</ShipUnitSequenceID>
    <Type>CRDCRT</Type>
    <PointOfStagingCode>KRD001000000</PointOfStagingCode>
</ShipmentUnit>

とにかくfor-each-group結果を出すには?

4

2 に答える 2

1

を使用して、存在しないノードがグループ化キーとして空の文字列を作成することを確認できますgroup-by="string(DocumentReference[@type='parentUnit']/DocumentID/ID)"

于 2013-09-06T11:00:04.320 に答える