0

我正在尝试使用 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中找到匹配的标签并复制标签值。不确定这样做的有效方法......双重迭代效率低下。任何建议都会有所帮助。

4

1 回答 1

1

这是一个非常广泛的问题,但我会尝试为您提供一些可以帮助您入门的建议。您可能希望使用该doc()函数来加载文件,因为 XSLT 只允许您遍历单个“主”文件。 doc()将新文件加载到可以应用模板的变量中,依此类推。如果您担心迭代性能,您应该了解xsl:keykey()构建索引的函数,这将有助于实现这一点。

于 2013-01-28T22:16:13.673 回答