【发布时间】:2017-03-13 21:15:35
【问题描述】:
这个服务器端版本设置 xslt 参数的等价物是什么,但使用客户端?
$xslt = new XSLTProcessor();
$xslt->setParameter('', 'value', $_REQUEST['value']); // param 1
$xslt->setParameter('', 'column', $_REQUEST['column']); // param 2
$xslt->setParameter('', 'page', $_REQUEST['page']); // param 3
$xslDoc = new DOMDocument();
$xslDoc->load('nginxSearchPaginated.xsl', LIBXML_NOCDATA);
$xslt->importStylesheet($xslDoc);
echo $xslt->transformtoXML($xmlDom1);
所有参数都需要像上面一样来自REQUEST。
这是我迄今为止尝试过的客户端:
$xslt = $xmlDom1->createProcessingInstruction('xml-stylesheet', 'type="text/xsl" href="clientSideFewSearch.xsl"');
$xslt->setParameter('', 'value', $_REQUEST['value']); // param 1
$xslt->setParameter('', 'column', $_REQUEST['column']); // param 2
$xslt->setParameter('', 'page', $_REQUEST['page']); // param 3
$xmlDom1->insertBefore($xslt,$xmlRoot1);
echo $xmlDom1->saveXML();
没有参数,代码确实可以工作,但我需要分页参数。
任何帮助都会非常感谢
【问题讨论】:
-
您假设客户端已安装必要的软件来进行转换。为什么需要在客户端进行转换?
-
我的讲师要求我这样做。
-
我已经完成了服务器端的一切,但我需要在客户端重复练习
-
href不是相对于从中加载文档的 URI 解析的吗?在这种情况下,样式表也是从服务器发送的。您可以尝试将参数添加到 URI,如clientSideFewSearch.xsl?value=...&column=...&page=...。虽然我在规范中找不到任何说明这应该有效,但这是我首先要尝试的。 -
就像您在服务器上使用 PHP 和 XSLT,您需要在客户端使用 Javascript 和 XSLT,developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor