XML/XSLT基于其他元素获取信息';s属性

XML/XSLT基于其他元素获取信息';s属性,xml,templates,xslt,attributes,Xml,Templates,Xslt,Attributes,我有两个XML文件,它们都有相同的属性。 我的目标是使用第一个文件的属性从第二个文件中收集具有相同ID的信息 <ms <m id="002"> </m> <m id="001"> </m> <m id="003"> </m> </ms> 我想要的是xsl文件将使用m@id在1.xml中有三种方法可以从2.xml中收集正确的信息 例如:xml 1中的第一个id

我有两个XML文件,它们都有相同的属性。 我的目标是使用第一个文件的属性从第二个文件中收集具有相同ID的信息

<ms
    <m id="002">
    </m>
    <m id="001">
    </m>
    <m id="003">
    </m>
</ms>
我想要的是xsl文件将使用m@id在1.xml中有三种方法可以从2.xml中收集正确的信息 例如:xml 1中的第一个id是002,它只从第二个元素中收集名称,其中m@id = 002;

<ms
    <m id="002">
    </m>
    <m id="001">
    </m>
    <m id="003">
    </m>
</ms>
以下是我的XML代码

<ms
    <m id="002">
    </m>
    <m id="001">
    </m>
    <m id="003">
    </m>
</ms>
1.XML

<ms
    <m id="002">
    </m>
    <m id="001">
    </m>
    <m id="003">
    </m>
</ms>

请按照以下思路进行尝试:

<ms
    <m id="002">
    </m>
    <m id="001">
    </m>
    <m id="003">
    </m>
</ms>
XSLT1.0

<ms
    <m id="002">
    </m>
    <m id="001">
    </m>
    <m id="003">
    </m>
</ms>
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="UTF-8"/>

<xsl:template match="/ms">
    <xsl:for-each select="m">
        <xsl:variable name="name" select="document('2.xml')/cs/c[m/@id=current()/@id]/name" />
        <xsl:text>ID: </xsl:text>
        <xsl:value-of select="@id" />
        <xsl:text>&#10;First Name: </xsl:text>
        <xsl:value-of select="$name/firstName" />
        <xsl:text>&#10;Last Name: </xsl:text>
        <xsl:value-of select="$name/lastName" />
        <xsl:text>&#10;&#10;</xsl:text>
    </xsl:for-each>
</xsl:template>

</xsl:stylesheet>

请分享输出XML的结构。您好,我更新了代码,这是您想要的吗?这是您期望的文本输出还是html,因为您的XSLT显示了一个
标记。这只是文本输出,我可以稍后将它们放入html中,标记可以让我的生活更轻松。您可以使用XSLT 2.0吗?谢谢!它起作用了!稍后我会为其他人发布一个完整的版本