AJAX / XSL:在XSLT中使用POST参数

时间:2010-11-23 01:54:34

标签: ajax xslt post parameter-passing

我正在通过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上运行它。想法?

1 个答案:

答案 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 }

<强>参考