替换节点下的所有标签
Replace all tags below a node
我需要在转换中更改节点下的所有标签。
来源 XML 看起来像这样:
<Address>
<s:name>name</s:name>
<s:lastName>last name <a:lastName>
<s:address1>Address Line 1</s:address1>
<s:address2>Address Line 2</s:address2>
必填O/p:
<Address>
<name>name</name>
<lastName>last name <lastName>
<address1>Address Line 1</address1>
<address2>Address Line 2</address2>
有千个tags.So,无法全部匹配。有没有一种方法可以获取顶级节点并处理下面的所有标签?
如果您使用 match="/*//*"
,那么您匹配根元素的所有后代元素。然后你可以使用
构造一个新元素
<xsl:template match="/*//*"><xsl:element name="local-name()"><xsl:apply-templates select="@* | node ()"/></xsl:element></xsl:template>
然后将身份转换模板添加到您的代码中,您就完成了。
我需要在转换中更改节点下的所有标签。 来源 XML 看起来像这样:
<Address>
<s:name>name</s:name>
<s:lastName>last name <a:lastName>
<s:address1>Address Line 1</s:address1>
<s:address2>Address Line 2</s:address2>
必填O/p:
<Address>
<name>name</name>
<lastName>last name <lastName>
<address1>Address Line 1</address1>
<address2>Address Line 2</address2>
有千个tags.So,无法全部匹配。有没有一种方法可以获取顶级节点并处理下面的所有标签?
如果您使用 match="/*//*"
,那么您匹配根元素的所有后代元素。然后你可以使用
<xsl:template match="/*//*"><xsl:element name="local-name()"><xsl:apply-templates select="@* | node ()"/></xsl:element></xsl:template>
然后将身份转换模板添加到您的代码中,您就完成了。