我想用xslt更改xml元素。
XML:
<PARAM name="ulang" value="de" original_value="de"/>
<PARAM name="wc" value="200" original_value="200"/>
<PARAM name="wc_mc" value="1" original_value="1"/>
<RES SN="1" EN="727">
<M>727</M>
<XT/>
<R N="1" L="1" MIME="text/plain">
<U>url</U>
<UE>url</UE>
<UD>url</UD>
<RK>10</RK>
<MT N="Content_Length" V="42"/>
<MT N="url_id" V="005056A51FAC1EE0B9A3EF696BB229CB"/>
我试图用这个xslt改变它:
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="MT[@N='url_id']">
<xsl:attribute name="url-id">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:template>
我希望url_id更改为url-id。
结果应如下所示:
<PARAM name="ulang" value="de" original_value="de"/>
<PARAM name="ulang" value="de" original_value="de"/>
<PARAM name="wc" value="200" original_value="200"/>
<PARAM name="wc_mc" value="1" original_value="1"/>
<RES SN="1" EN="727">
<M>727</M>
<XT/>
<R N="1" L="1" MIME="text/plain">
<U>url</U>
<UE>url</UE>
<UD>url</UD>
<RK>10</RK>
<MT N="Content_Length" V="42"/>
<MT N="url-id" V="005056A51FAC1EE0B9A3EF696BB229CB"/>
谢谢!
答案 0 :(得分:1)
您的模板与MT
元素匹配,并尝试创建一个属性来代替该元素。
您需要将模板更改为匹配属性而不是......
<xsl:template match="MT/@N[. = 'url_id']">
<xsl:attribute name="N">
<xsl:value-of select="'url-id'"/>
</xsl:attribute>
</xsl:template>
甚至这个......
<xsl:template match="MT/@N[. = 'url_id']">
<xsl:attribute name="N">url-id</xsl:attribute>
</xsl:template>