在我的XML中,我希望所有值都增加1。因此,在下面的XML中,我只有2倍的值,我希望值8为9,值为5为6。但这应该适用于所有可能的值。
这是我的XML:
<?xml version="1.0" encoding="UTF-8"?><equipmentActualProperties>
<equipmentActualProperty>
<action>U</action>
<dataType>Text</dataType>
<equipmentActualPropertyID>CUST_0002</equipmentActualPropertyID>
<equipmentActualPropertyValueTexts>
<equipmentActualPropertyValueText>
<languageID>EN</languageID>
<value>8</value>
</equipmentActualPropertyValueText>
</equipmentActualPropertyValueTexts>
<equipmentPropertyID>CUST_0002</equipmentPropertyID>
<equipmentUse>Other</equipmentUse>
<hierarchyScope>default</hierarchyScope>
<requiredByRequestedSegmentResponse>Other</requiredByRequestedSegmentResponse>
</equipmentActualProperty>
<equipmentActualProperty>
<action>U</action>
<dataType>Text</dataType>
<equipmentActualPropertyID>CUST_0001</equipmentActualPropertyID>
<equipmentActualPropertyValueTexts>
<equipmentActualPropertyValueText>
<languageID>EN</languageID>
<value>5</value>
</equipmentActualPropertyValueText>
</equipmentActualPropertyValueTexts>
<equipmentPropertyID>CUST_0001</equipmentPropertyID>
<equipmentUse>Other</equipmentUse>
<hierarchyScope>default</hierarchyScope>
<requiredByRequestedSegmentResponse>Other</requiredByRequestedSegmentResponse>
</equipmentActualProperty>
您可以使用身份模板并推动编程来执行此操作。另外,要使此工作,您的片段需要在根节点内。
<!-- Identity template. -->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="value">
<xsl:copy>
<xsl:value-of select=". + 1"/>
</xsl:copy>
</xsl:template>