【发布时间】:2016-03-02 09:41:22
【问题描述】:
我有一个示例 XML
<document>
<item>
<gtin>1000909090</gtin>
<flex>
<pegMeasurements>
<pegHoleNumber>2</pegHoleNumber>
<pegHorizontal uom="CMT">10</pegHorizontal>
<pegVertical uom="INH">20</pegVertical>
<pegHoleType>ES1</pegHoleType>
</pegMeasurements>
</flex>
</item>
</document>
我正在使用的 XSLT
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:template match="document">
<CatalogItem>
<RelationshipData>
<Relationship>
<RelationType>Item_Master_TRADEITEM_TEMPERATURE_MVL</RelationType>
<RelatedItems>
<xsl:for-each select="item/flex/pegMeasurements//@uom">
<RelatedItem>
<xsl:attribute name="referenceKey">
<xsl:value-of select="concat('TradeItemTemperatureInformation_MVL','-', .,'-', ../../pegHoleNumber,'-', ../../pegHoleType ,'-',name(../),'-' )"/>
</xsl:attribute>
</RelatedItem>
</xsl:for-each>
</RelatedItems>
</Relationship>
</RelationshipData>
</CatalogItem>
</xsl:template>
</xsl:stylesheet>
我能够读取除数据末尾的 10 和 20 的 pegHorizontal 和 pegVertical 值之外的所有值。
预期的输出应该是
<?xml version="1.0" encoding="UTF-8"?>
<CatalogItem>
<RelationshipData>
<Relationship>
<RelationType>Item_Master_TRADEITEM_TEMPERATURE_MVL</RelationType>
<RelatedItems>
<RelatedItem referenceKey="TradeItemTemperatureInformation_MVL-CMT-2-ES1-pegHorizontal-10" />
<RelatedItem referenceKey="TradeItemTemperatureInformation_MVL-INH-2-ES1-pegVertical-20" />
</RelatedItems>
</Relationship>
有人可以指导最后附加什么代码。请不要更改完整的代码,因为我还有其他部分。
【问题讨论】:
标签: xml xslt xml-parsing xslt-1.0 xslt-2.0