我正在尝试使用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.File2有类似的标签,但订单混乱,
<?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中找到匹配的标记并复制标记值。不确定这样做的有效方法......双重迭代效率低下。任何建议都会有所帮助。
答案 0 :(得分:1)
这是一个非常广泛的问题,但我会尽力给你一些指导,让你开始。您可能希望使用doc()
函数来加载文件,因为XSLT只允许您迭代单个“主”文件。 doc()
将新文件加载到可以应用模板的变量中,依此类推。如果您担心迭代性能,您应该了解xsl:key
和key()
函数,它们构建了有助于此的索引。