如何使用xslt合并每个元素的两个xml文件

如何使用xslt合并每个元素的两个xml文件,xml,xslt,merge,Xml,Xslt,Merge,我有两个xml文件需要使用XSLT合并成一个。我试图找到解决办法,但没有成功 文件1====>xpto.xml INTEGRA 256 Plus EN-50131三级 更新日期:2014-06-23 1.47 MB INTEGRA 256 Plus EN-50131三级 更新日期:2014-06-23 1.47 MB INTEGRA 256 Plus EN-50131三级 更新日期:2014-06-23 1.47 MB INTEGRA 256 Plus EN-50131三级 更新日期:201

我有两个xml文件需要使用XSLT合并成一个。我试图找到解决办法,但没有成功

文件1====>xpto.xml


INTEGRA 256 Plus
EN-50131三级
更新日期:2014-06-23
1.47 MB
INTEGRA 256 Plus
EN-50131三级
更新日期:2014-06-23
1.47 MB
INTEGRA 256 Plus
EN-50131三级
更新日期:2014-06-23
1.47 MB
INTEGRA 256 Plus
EN-50131三级
更新日期:2014-06-23
1.47 MB
文件2====>links.xml


地点1
站点2
地点3
地点4
所需的合并输出:result.xml

<?xml version="1.0" encoding="utf-8"?>

<Rows   
    <Row>
        <Model>INTEGRA 256 Plus</Model> 
        <Descri>EN-50131 GRADE 3</Descri> 
        <Update>updated: 2014-06-23</Update> 
        <Filesize>1.47 MB</Filesize>
        <link>site1</link>
    </Row>
    <Row>
        <Model>INTEGRA 256 Plus</Model> 
        <Descri>EN-50131 GRADE 3</Descri> 
        <Update>updated: 2014-06-23</Update> 
        <Filesize>1.47 MB</Filesize>
        <link>site2</link>
    </Row>
    <Row>
        <Model>INTEGRA 256 Plus</Model> 
        <Descri>EN-50131 GRADE 3</Descri> 
        <Update>updated: 2014-06-23</Update> 
        <Filesize>1.47 MB</Filesize>
        <link>site3</link>
    </Row>
    <Row>
        <Model>INTEGRA 256 Plus</Model> 
        <Descri>EN-50131 GRADE 3</Descri> 
        <Update>updated: 2014-06-23</Update> 
        <Filesize>1.47 MB</Filesize>
        <link>site4</link>
    </Row>
</Rows>

merge.xsl(我得到的解决方案,但不是我想要的)


修改为

<xsl:copy-of select="$updates//Row[position() = $rowposition]/link">

在您的
添加

<xsl:variable name="rowposition" select="count(preceding-sibling::*)+1"/>


你好……谢谢你的帮助!这样给我一个错误。。。但我改成这个:或者改成这个:我还是没有成功再次感谢你。。。不要工作。。。我改为:我得到的结果越好:INTEGRA 256 Plus EN-50131三级更新:2014-06-23 1.47 MB站点1。。。site1请再试一次,抱歉,没有针对每个站点的
<xsl:stylesheet version="1.0" 
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>

<xsl:param name="fileName" select="'links.xml'" />
<xsl:param name="updates" select="document($fileName)" />

<xsl:variable name="updateLinks" select="$updates/Rows/Row" />

<xsl:template match="@* | node()">
    <xsl:copy>
        <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="Row">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()" />
        <xsl:copy-of select="$updateLinks/*"></xsl:copy-of>
    </xsl:copy>
</xsl:template>
<xsl:copy-of select="$updates//Row[position() = $rowposition]/link">
<xsl:variable name="rowposition" select="count(preceding-sibling::*)+1"/>