XML/XSLT基于其他元素获取信息';s属性
我有两个XML文件,它们都有相同的属性。 我的目标是使用第一个文件的属性从第二个文件中收集具有相同ID的信息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
<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> First Name: </xsl:text>
<xsl:value-of select="$name/firstName" />
<xsl:text> Last Name: </xsl:text>
<xsl:value-of select="$name/lastName" />
<xsl:text> </xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
请分享输出XML的结构。您好,我更新了代码,这是您想要的吗?这是您期望的文本输出还是html,因为您的XSLT显示了一个
标记。这只是文本输出,我可以稍后将它们放入html中,标记可以让我的生活更轻松。您可以使用XSLT 2.0吗?谢谢!它起作用了!稍后我会为其他人发布一个完整的版本