【发布时间】:2010-06-01 19:16:14
【问题描述】:
我需要一个 XSL 解决方案来用新节点替换 XML 节点。
假设我有以下现有的 XML 结构:
<root>
<criteria>
<criterion>AAA</criterion>
</criteria>
</root>
我想将一个标准节点替换为:
<criterion>BBB</criterion>
<criterion>CCC</criterion>
<criterion>DDD</criterion>
这样最终的XML结果是:
<root>
<criteria>
<criterion>BBB</criterion>
<criterion>CCC</criterion>
<criterion>DDD</criterion>
</criteria>
</root>
我尝试使用 substring-before 和 substring-after 来复制结构的前半部分,然后只复制后半部分(以便在两半之间填充我的新节点),但似乎子字符串函数只能识别节点标签之间的文本,而不是像我想要的那样识别标签本身。 :( :(
还有其他解决方案吗?
【问题讨论】:
-
好问题 (+1)。请参阅我的答案以获得正确且简短的解决方案。请注意,当前接受的解决方案有一个逻辑缺陷(它恰好适用于您的 XML 文档,但通常会产生其他 XML 文档的错误结果)。