我有这样的xml
<?xml version="1.0" encoding="utf-8"?>
<all>
<Others>1</Others>
<O>(</O>
<B-XREF>1</B-XREF>
<O>)</O>
</authors>
<Others>From</Others></all>
我想将所有包含特殊字符的标签的标签更改为<special>,</special>
,替换所有这样的标签。
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" />
<xsl:template match=".">
<special>
<xsl:apply-templates select="@*|node()"/>
</special>
</xsl:template>
我想这样做,还有其他方法吗?
xml应该像
<?xml version="1.0" encoding="utf-8"?>
<all>
<Others>1</Others>
<authors>
<special>)</special>
<special>,</special> ........
答案 0 :(得分:1)
您可以使用identity transform
模板将输入原样复制到输出,然后将<O>
元素修改为<special>
。
<!-- identity transform -->
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="O">
<special>
<xsl:apply-templates />
</special>
</xsl:template>