我正在尝试从" false"更改元素的值。 to" true"
<ItemMaster>
<ItemMasterHeader>
<ItemID>
<ID>ASSET1</ID>
</ItemID>
<DisplayID>ASSET1</DisplayID>
<GTIN/>
<ServiceIndicator xmlns="">false</ServiceIndicator>
<Description>AC SPLIT WALL 1.5 PKPANASONICS</Description>
<Note/>
<Classification>
<Codes>
<Code listID="Item Types" sequence="1" xmlns:my="http://schema.com/OAGIS/2">Purchased</Code>
<Code listID="Item Groups" sequence="2">4ET</Code>
<Code listID="MRO Classes" sequence="3">*</Code>
</Codes>
</Classification>
<HazardousMaterialIndicator>false</HazardousMaterialIndicator>
<TrackingIndicator>false</TrackingIndicator>
我使用以下XSL:
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>
<xsl:template
match="//my:SyncItemMaster/my:DataArea/my:ItemMaster/my:ItemMasterHeader/my:TrackingIndicator">
<xsl:value-of select="true" />
</xsl:template>
但我得到的是:
<ItemMaster>
<ItemMasterHeader>
<ItemID>
<ID>ASSET1</ID>
</ItemID>
<DisplayID>ASSET1</DisplayID>
<GTIN/>
<ServiceIndicator xmlns="">false</ServiceIndicator>
<Description>AC SPLIT WALL 1.5 PKPANASONICS</Description>
<Note/>
<Classification>
<Codes>
<Code listID="Item Types" sequence="1" xmlns:my="http://schema.com/OAGIS/2">Purchased</Code>
<Code listID="Item Groups" sequence="2">4ET</Code>
<Code listID="MRO Classes" sequence="3">*</Code>
</Codes>
</Classification>
<HazardousMaterialIndicator>false</HazardousMaterialIndicator>
相反,该元素完全缺失。
这里可能出了什么问题?它似乎是一个非常基本的功能,但我不知道为什么它会丢失。
更新:
我试图在XSLT中添加一些代码:
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>
<xsl:template
match="//my:SyncItemMaster/my:DataArea/my:ItemMaster/my:ItemMasterHeader/my:TrackingIndicator">
<xsl:element name="TrackingIndicator">
<xsl:value-of select="true" />
</xsl:element>
</xsl:template>
但现在结果变成了这样:
<ItemMaster>
<ItemMasterHeader>
<ItemID>
<ID>ASSET1</ID>
</ItemID>
<DisplayID>ASSET1</DisplayID>
<GTIN/>
<ServiceIndicator xmlns="">false</ServiceIndicator>
<Description>AC SPLIT WALL 1.5 PKPANASONICS</Description>
<Note/>
<Classification>
<Codes>
<Code listID="Item Types" sequence="1" xmlns:my="http://schema.com/OAGIS/2">Purchased</Code>
<Code listID="Item Groups" sequence="2">4ET</Code>
<Code listID="MRO Classes" sequence="3">*</Code>
</Codes>
</Classification>
<HazardousMaterialIndicator>false</HazardousMaterialIndicator>
<TrackingIndicator xmlns=""/>
它仍然不像我希望的那样(TrackingIndicator)true(TrackingIndicator)
非常感谢您的帮助:)。
答案 0 :(得分:1)
请更改以下模板(您可能需要处理任何适用的命名空间)。
<xsl:template match="TrackingIndicator">
<xsl:copy>
<xsl:value-of select="'true'" />
</xsl:copy>
</xsl:template>
您可以仅在模板匹配中提及元素名称,而不是指定整个XPath。要设置值,true
应在single quotes
中指定为字符串。
输出
<TrackingIndicator>true</TrackingIndicator>