我有一個傳入的XML文檔。我只需要在下面的傳入XML文檔中修改一個元素示例<ID>
元素的值。我基本上需要檢查名爲<ID>
的元素,如果該值沒有任何連字符,它將採取原樣並且如果該值包含連字符( - ),則需要在連字符( - )之前取值 - 4314141 傳入XML文檔:身份轉換XSLT
<Message>
<ID>4314141-324234</ID>
<EMAIL>abc</EMAIL>
</Message>
我正在使用下面的XSL來做到這一點,但它不按預期工作。 XSL:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dp="http://www.datapower.com/extensions"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
extension-element-prefixes="dp"
exclude-result-prefixes="dp" >
<xsl:variable name="uuid" select="dp:variable('var://context/txn/uuid')" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/ID">
<xsl:copy>
<ID><xsl:value-of select="substring-before($ID, ' -')" /></ID>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="ID"/>
</xsl:stylesheet>
讓我知道我可以做到這一點。
兩個錯誤:'匹配= 「/ ID」'將只能以文件的最外面的級別相匹配的ID元件,和' $ ID'指的是一個不存在的變量。 –