xslt – 如何使用xsl将标记替换为xml中的另一个标记
发布时间:2020-12-16 23:48:19 所属栏目:百科 来源:网络整理
导读:我的xml文件如下所示. rule name86/name ruleId100/ruleId ruleVersion1.0/ruleVersion brlVersion1.0/brlVersion/rule 我需要用brlName替换name,我需要添加另一个标签作为drlName.输出应如下所示. rule brlName86/brlName ruleId100/ruleId ruleVersion1.0/
我的xml文件如下所示.
<rule> <name>86</name> <ruleId>100</ruleId> <ruleVersion>1.0</ruleVersion> <brlVersion>1.0</brlVersion> </rule> 我需要用brlName替换name,我需要添加另一个标签作为drlName.输出应如下所示. <rule> <brlName>86</brlName> <ruleId>100</ruleId> <ruleVersion>1.0</ruleVersion> <brlVersion>1.0</brlVersion> <drlName>86_1.0</drlName> </rule> 请帮助我使用相应的xsl来获得所需的输出.
这是身份转换的典型任务(下面转换中的第一个模板规则).只有两个覆盖(最后两个规则).
XSLT 1.0在Saxon 6.5.5下测试 <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="name"> <brlName><xsl:value-of select="."/></brlName> </xsl:template> <xsl:template match="brlVersion"> <xsl:copy-of select="."/> <drlName><xsl:value-of select="preceding-sibling::name"/>_1.0</drlName> </xsl:template> </xsl:stylesheet> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |