0
去除節點名稱中'_'的字符,我的要求是將其中有_的所有節點名稱重命名爲新名稱。 如何去除節點名稱中存在的char權限,並將名稱的左側作爲新節點名稱? e.g如何使用xslt
<abc_2013></abc_2013> to be renamed as <abc></abc>
去除節點名稱中'_'的字符,我的要求是將其中有_的所有節點名稱重命名爲新名稱。 如何去除節點名稱中存在的char權限,並將名稱的左側作爲新節點名稱? e.g如何使用xslt
<abc_2013></abc_2013> to be renamed as <abc></abc>
這種轉變:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[contains(name(), '_')]">
<xsl:element name="{substring-before(name(),'_')}"
namespace="{namespace-uri()}">
<xsl:apply-templates select="node()|@*"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
當這個XML文檔施加:
<abc_2013>xYz</abc_2013>
產生想要的,正確的結果:
<abc>xYz</abc>
說明:
正確使用和壓倒一切的identity rule。
正確使用該函數的substring-before()