1
以下是xml代碼,我在XSLT的輸入中提供了XSLT代碼,並提供了預期的輸出和區域,以便卡住。這是關於資產和相應基本計量表的一個例子。父節點和子節點交換xslt
<BaseMeter>
<MeterName>Meter description</MeterName>
<MeterCode>Meter1</MeterCode>
<ASSETID>
<Name>Airco Unit</Name>
<Code>ID1</Code>
</ASSETID>
</BaseMeter>
<BaseMeter>
<MeterName>Meter description</MeterName>
<MeterCode>Meter2</MeterCode>
<ASSETID>
<Name>Airco Unit</Name>
<Code>ID1</Code>
</ASSETID>
</BaseMeter>
轉換的XML應該如下所示通過xslt實際轉換的xml代碼也在下面提供。
<Asset>
AssetID
AssetName
<Meter>
MeterID (eg. Meter 1)
MeterName
<Meter>
<Meter>
MeterID (eg. Meter 2)
MeterName
<Meter>
我用下面的XSLT
<xsl:template match="/">
<xsl:for-each-group select="BaseMeter" group-by="AssetID/Code">
<Asset ID="{current-grouping-key()}">
<xsl:copy-of select="current-group()"/>
</Asset>
</xsl:for-each-group>
</xsl:template>
和輸出是這樣的,但同樣的資產ID和姓名被捕獲爲兒童的以資產標籤,如何刪除他們,使他們不出現輸出或轉換XML enter code here
<Asset ID="000244">
<BaseMeter>
<MeterName>Meter Name</MeterName>
<MeterCode>0040</MeterCode>
<AssetID>
<Name>Airco Unit</Name>
<Code>000244</Code>
</AssetID>
</BaseMeter>
這是我面臨的問題..將是非常好的,如果有人可以幫助我。我已經使用group by,無法破解如何移除再次出現的資產Id。
你確定,你可以在你的XML找到InventoryItemRef? –
我編輯了xslt – SSN
您的輸入不是格式良好的XML(沒有單個根元素)。因此,輸出不能是你聲稱的。 –