我如何合并两个XML文件中的列表数据?

时间:2014-10-26 20:29:15

标签: html xml xslt xslt-1.0

File1.xml

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>

<wordlist>
        <title>English</title>
        <writer>BASHKIM</writer>
        <word>Father</word> 
        <word>Mother</word>
        <word>Son</word>
</wordlist>

File2.xml

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<wordlist>
        <title>Spanish</title>
        <writer>BASHKIM</writer>
        <word>Fakhts</word> 
        <word>Moghday</word>
        <word>Sonay</word>
</wordlist>

我有两个XML文件(上面发布的代码),我想结合他们的内容。如何从两个文件创建包含//worldlist/word的输出?

我想要这样的输出:

For example:
Father-Fakhts
Mother-Moghday
Son-Sonay

2 个答案:

答案 0 :(得分:2)

在XPath 3.0中,你可以做到

for-each-pair(doc('file1.xml')//word, doc('file2.xml')//word, 
              concat(?, ' ', ?, '&#xa;'))

您可以在任何XQuery 3.0或XSLT 3.0处理器中使用它。

答案 1 :(得分:1)

在XSLT 1.0中,如果变量$ v1和$ v2中有两个列表,则可以

<xsl:for-each select="$v1">
  <xsl:variable name="this" select="."/>
  <xsl:variable name="p" select="position()"/>
  <xsl:variable name="that" select="$v2[$p]"/>
  <xsl:value-of select="concat($this, '-', $that, '&#xa;')"/>
</xsl:for-each>