0

我有一个如下所示的 URL:

www.example.com/careers/job.aspx?jobTitle=analytics-developer

我想将“jobTitle”传递给一个 xslt 文件,使用<%=Request.QueryString["jobTitle"]%>

我在 job.aspx 中使用的将信息传递给 jobTitle.xslt 文件的代码是这样的:

<asp:Xml ID="Xml1" runat="server" DocumentSource="~/_/xml/Jobs.xml" TransformSource="~/_/xslt/jobTitle.xslt"></asp:Xml>

其中 Jobs.xml 是包含所有作业信息的 xml 文件。

Jobs.xml 看起来像这样:

<?xml version="1.0" encoding="utf-8" ?>
<jobs>
    <devjobs>
      <job>
        <title>Analytics Developer</title>
        <group>Mobile Analytics Group</group>
        <url>analytics-developer</url>
        <shortdesc>We are looking for talented developers.</shortdesc>
     </job>
  </devjobs>
</jobs>

基本上我希望能够在 xslt 文件中写入“如果urlJobs.xml 文件中的元素等于 url 中给出的'jobTitle',那么我们将显示该作业的详细信息”。

这可能吗?

4

1 回答 1

0

asp XML 控件有一个“TransformArgumentList”属性,可用于将参数传递给 XSLT。老实说,我不知道你是否可以直接在 asp:xml 标签本身上,但你总是可以在你的代码后面设置,例如在 page_load 事件中

protected void Page_Load(Object Sender, EventArgs e)
{
    string param = Request.QueryString["jobTitle"];
    XsltArgumentList args = new XsltArgumentList();
    args.AddParam("jobtitle", "", param);
    Xml1.TransformArgumentList = ags;
}

然后,在您的 XSLT 文件本身中,您需要相应地有一个xsl:param元素:

<xsl:param name="jobtitle" />

然后,您可以像访问任何变量一样访问它(通过将其称为$jobtitle)。

于 2013-08-14T13:05:58.873 回答