如何使用 xsl 将 xml 中的一个标签替换为另一个标签
我的 xml 文件如下所示。
<rule>
<name>86</name>
<ruleId>100</ruleId>
<ruleVersion>1.0</ruleVersion>
<brlVersion>1.0</brlVersion>
</rule>
我需要将 name 替换为 brlName,并且需要添加另一个标签作为 drlName。输出应如下所示。
<rule>
<brlName>86</brlName>
<ruleId>100</ruleId>
<ruleVersion>1.0</ruleVersion>
<brlVersion>1.0</brlVersion>
<drlName>86_1.0</drlName>
</rule>
请帮助我使用相应的 xsl 以获得所需的输出。 感谢您的帮助!
My xml file looks like below.
<rule>
<name>86</name>
<ruleId>100</ruleId>
<ruleVersion>1.0</ruleVersion>
<brlVersion>1.0</brlVersion>
</rule>
I need to replace name with brlName and i need to add another tag as drlName.The output should looks like below.
<rule>
<brlName>86</brlName>
<ruleId>100</ruleId>
<ruleVersion>1.0</ruleVersion>
<brlVersion>1.0</brlVersion>
<drlName>86_1.0</drlName>
</rule>
Please help me with corresponding xsl to get desired output.
Appreciated your help!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是身份转换的典型任务(下面转换中的第一个模板规则)。只有两个覆盖(最后两个规则)。
XSLT 1.0 在 Saxon 6.5.5 下测试
This is the typical task for the identity transform (the first template rule in the transform below). Just two overrides (the last two rules).
XSLT 1.0 tested under Saxon 6.5.5
此转换:
应用于提供的 XML 文档时:
产生所需的正确结果:
说明:
使用和覆盖身份规则/模板——最基本、最强大的XSLT 设计模式。
覆盖任何名为
name
的元素并创建名为brlName
的元素(重命名)。覆盖顶部元素的最后一个子元素。按此节点的名称调用身份规则(复制),然后根据要求创建一个名为
drlName
的元素,其中包含特定的文本节点子节点。使用和覆盖身份规则/模板是最基本、最强大的 XSLT 设计模式。您可以在此处了解更多信息。
This transformation:
when applied on the provided XML document:
produces the wanted, correct result:
Explanation:
Using and overriding the identity rule/template -- the most fundamental and powerful XSLT design pattern.
Override on any element named
name
and creating an element namedbrlName
(rename).Override on the last last element child of the top element. Calling the identity rule by name for this node (copying) and then creating an element named
drlName
with a specific text-node child as per the requirements.Using and overriding the identity rule/template is the most fundamental and powerful XSLT design pattern. You can learn more about it here.