【问题标题】:xslt include node to for-each-group when group-by node doesn't exist当 group-by 节点不存在时,xslt 将节点包含到 for-each-group
【发布时间】:2013-09-06 09:48:20
【问题描述】:

我有一个 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 没有 group-by 节点时,for-each-group 会忽略该 XML 节点。

如何包含节点

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

for-each-group 还是结果?

【问题讨论】:

    标签: xml xslt xpath xslt-2.0


    【解决方案1】:

    试试

    group-by="(DocumentReference[@type='parentUnit']/DocumentID/ID, '*')[1]"
    

    没有文档 ID 的元素将组成自己的组,分组键为“*”。

    如果您希望每个此类文档都属于自己的一组,您可以使用 generate-id() 代替 '*'。

    【讨论】:

      【解决方案2】:

      您可以确保一个不存在的节点使用group-by="string(DocumentReference[@type='parentUnit']/DocumentID/ID)" 创建一个空字符串作为分组键。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-30
        • 2017-03-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多