Xml 为路径组合变量

Xml 为路径组合变量,xml,xslt,xpath,Xml,Xslt,Xpath,如何将变量与路径搜索相结合 这就是xml的样子 <FIELD Name="User1Transmission.DocumentID" Value=""></<FIELD <FIELD Name="User2Transmission.DocumentID" Value=""></<FIELD <FIELD Name="User3Transmission.DocumentID" Value=""></<FIELD <FIE

如何将变量与路径搜索相结合

这就是xml的样子

<FIELD Name="User1Transmission.DocumentID" Value=""></<FIELD
<FIELD Name="User2Transmission.DocumentID" Value=""></<FIELD
<FIELD Name="User3Transmission.DocumentID" Value=""></<FIELD
<FIELD Name="User4Transmission.DocumentID" Value=""></<FIELD

考虑以下示例:

XML

<FIELDS>
    <FIELD>
      <NAME>User1Transmission.DocumentID</NAME>
      <VALUE>100</VALUE>
    </FIELD>
    <FIELD>
      <NAME>User2Transmission.DocumentID</NAME>
      <VALUE>200</VALUE>
    </FIELD>
    <FIELD>
      <NAME>User3Transmission.DocumentID</NAME>
      <VALUE>300</VALUE>
    </FIELD>
</FIELDS>

User1Transmission.DocumentID
100
User2Transmission.DocumentID
200
User3Transmission.DocumentID
300
XSLT1.0

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:param name="user-number" select="2"/>

<xsl:template match="/FIELDS">
    <result>
        <xsl:value-of select="FIELD[NAME=concat('User', $user-number, 'Transmission.DocumentID')]/VALUE" />
    </result>
</xsl:template>

</xsl:stylesheet>

结果

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

200

我刚刚更新了标记xml,这不是格式良好的xml。
<FIELDS>
    <FIELD>
      <NAME>User1Transmission.DocumentID</NAME>
      <VALUE>100</VALUE>
    </FIELD>
    <FIELD>
      <NAME>User2Transmission.DocumentID</NAME>
      <VALUE>200</VALUE>
    </FIELD>
    <FIELD>
      <NAME>User3Transmission.DocumentID</NAME>
      <VALUE>300</VALUE>
    </FIELD>
</FIELDS>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:param name="user-number" select="2"/>

<xsl:template match="/FIELDS">
    <result>
        <xsl:value-of select="FIELD[NAME=concat('User', $user-number, 'Transmission.DocumentID')]/VALUE" />
    </result>
</xsl:template>

</xsl:stylesheet>
<?xml version="1.0" encoding="utf-8"?>
<result>200</result>