【发布时间】:2013-01-29 06:19:01
【问题描述】:
我正在尝试使用 Xslt 将内容从一个 xml 复制到另一个 xml。
我需要复制file1的内容
<?xml version="1.0"?>
<products author="Jesper">
<product>
<name>Delta</name>
<price>800</price>
<stock>
<price>13a</price>
</stock>
<place>Denmark</place>
</product>
</products>
到文件2。文件2有类似的标签,但顺序混乱,
<?xml version="1.0"?>
<products author="Jesper">
<product>
<stock>
<price>13d</price>
</stock>
<price>700</price>
<place>Copenhagen</place>
<name>Beta</name>
</product>
</products>
预期输出
<products author="Jesper">
<product>
<stock>
<price>13a</price>
</stock>
<price>800</price>
<place>Denmark</place>
<name>Delta</name>
</product>
</products>
所以基本上我需要使用 for-each 遍历 file1,然后在 file2 中找到匹配的标签并复制标签值。不确定这样做的有效方法......双重迭代效率低下。任何建议都会有所帮助。
【问题讨论】:
-
所以你想覆盖 file2 中的所有内容?或某种合并。如果是第一种情况,为什么要提及文件 2。获取文件 1 并使用 xslt 从头开始创建
-
file2 有一个指定的模式,它可能有几个额外的标签,可能没有文件 1 的所有标签。我无法更改文件 2 的预定义模式。所以对于 file1 的每个标签,我需要对文件 2 中的标签执行查找。如果找到我需要从 file1 设置标签的值
-
这已经足够清楚了!但是你想怎么做。只需使用 xslt。我不确定,但我认为 xslt 不能用于将数据附加到现有文件。在您的标题中,您编写了 java,我认为这是 java 问题而不是 xslt 问题。也许我错了。