繁体   English   中英

使用xslt将一个xml的内容复制到另一个

[英]Copying content of one xml into other using xslt

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

这是一个非常广泛的问题,但是我将尝试为您提供一些入门指南。 您可能要使用doc()函数加载文件,因为XSLT仅允许您迭代单个“主”文件。 doc()将新文件加载到一个变量中,您可以将其应用于模板等等。 如果您担心迭代性能,则应了解xsl:keykey()函数,它们将建立有助于此工作的索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM