我是asp.net和xslt的新手,所以请在这里和我一起玩。
所以我有一个如下所示的网址:
www.example.com/careers/job.aspx?jobTitle=analytics-developer
我想使用<%=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文件中写入“如果Jobs.xml文件中的url
元素等于url中给出的'jobTitle',那么我们就会显示该作业的详细信息”。
这可能吗?
答案 0 :(得分: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 )。