我正在通过AJAX将POST参数发送到XSLT样式表。
AJAX片段:
//param name/value is nodeid=1
xhttp.open("POST",dname,false);
xhttp.setRequestHeader("Content-type", "text/plain");
xhttp.setRequestHeader("Content-length", params.length);
xhttp.setRequestHeader("Connection", "close");
xhttp.send(params);
XSL片段
<xsl:param name="nodeid" />
<xsl:template match="/">
Hi <xsl:value-of select="$nodeid" />
</xsl:template>
“嗨”会在响应中返回,但不会返回nodeid。这看起来很简单,所以我错过了什么?我已尝试在本地以及JRun / Coldfusion上运行它。想法?
答案 0 :(得分:0)
在处理之前,使用特定于处理器的API获取nodeid
参数。在PHP中:
$transformer = new XSLTProcessor();
$transformer->importStylesheet("foo.xsl");
$transformer->setParameter('', 'nameOfPage', $_POST['nameOfPage']);
或Coldfusion:
<cffile action="read" file="C:\CFusion\wwwroot\testdocs\simpletransform.xsl"
variable="xslDoc">
<cfset mystruct={nameOfPage=request.nameOfPage}>
<cfset transformedXML = XmlTransform(mydoc, xslDoc, mystruct)>
<cffile action="write" file="C:\CFusion\wwwroot\testdocs\transformeddoc.xml"
output=transformedXML>
或VBScript:
nameOfString = WScript.Stdin.ReadAll
或Awk:
BEGIN { FS = "=" } ; { print $2 | xargs xsltproc foo.xsl foo.xml --param nameOfPage }
<强>参考强>