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(没有单个根元素)。因此,输出不能是你声称的。 –