【发布时间】:2015-03-12 22:35:24
【问题描述】:
使用 XSLT,我想转换一个具有以下结构的 XML 文件:
<e1>
<e2 a="a1" b="b1" c="c1">
<e3 foo="a"/>
<e3 foo="b"/>
<e3 foo="c"/>
...
</e2>
<e2 a="a2" b="b2" c="c2">
<e3 foo="d"/>
...
</e2>
...
</e1>
进入:
<e1>
<e2 a="a1" b="b1" c="c1">
<e3 a="a1" b="b1" e="e"/>
</e2>
<e2 a="a2" b="b2" c="c2">
<e3 a="a2" b="b2" e="e"/>
</e2>
...
</e1>
换句话说:我需要完全删除 e3 元素,并将它们替换为包含 e2 元素的副本,并将其名称更改为 e3;将一些属性(例如 a、b)复制到新元素,并添加一些新属性(例如 e)。
其他任何东西都必须保持原样。
提前谢谢你。
【问题讨论】:
-
问题不够清楚。 1. 你是什么意思用封闭的e2元素的副本替换它们,它的名称更改为e3,因为我仍然可以看到
e2和@ 987654324@ 输出中的元素。 2. 请具体说明要复制的属性,不要让我们假设什么。 -
@LingamurthyCS,新的 e3 元素是封闭 e2 元素的副本,其中删除了一些属性,并添加了一些属性。要复制的属性 - 如示例 a 和 b,删除 c,添加 e。
-
您要删除哪些属性,要添加哪些属性?
-
@LingamurthyCS,我已经编辑了之前的评论。复制 a 和 b,删除 c,添加 e。
-
"e 已添加"。值来自...?