我需要使用XSLT增加XML中的所有值

  • 本文关键字:XML 增加 XSLT xslt-1.0
  • 更新时间 :
  • 英文 :


在我的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>

最新更新