xslt和传递参数(查询字符串)

时间:2012-02-23 00:34:32

标签: xml xslt filter query-string

我的xml文件中有一个用户列表,这就是我在xslt中的用法:

<a >
    <xsl:attribute name="href">
        <xsl:value-of select="@First_Name"/>
        <xsl:text>_</xsl:text><xsl:value-of select="@Last_Name"/>
        <xsl:text>.xml</xsl:text>
    </xsl:attribute>
    <xsl:value-of select="@id"/>
    <xsl:value-of select="@First_Name"/>
    <xsl:text>  </xsl:text>
    <xsl:value-of select="@Last_Name"/>
</a>

现在....还有另一个xml文件,其中包含每个用户的详细信息 如何将“@id”传递给它并将其用作过滤器? 或者我可以吗?

2 个答案:

答案 0 :(得分:0)

您可以使用document()函数来使用第二个xml文档中的数据。

例如:

<xsl:variable name="value" select="some-value"/>
<xsl:value-of select="document('users.xml')/users/user[@id=$value]"/>

如果您需要经常访问第二个文档,将其作为<xsl:variable>加载也可能更方便。

答案 1 :(得分:0)

让我们说带有用户详细信息的文件名为details.xml。 它有以下结构:

  <detail id='aaa'>
  </detail>
  <detail id='bbb'>
  </detail>

然后您可以将这些行添加到您的代码中:

  <xsl:variable name="userId" select="@id" />
  <xsl:value-of select="document('details.xml')/detail[@id=$userId]"/>