簡體   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