将XML文档(片段)作为参数传递给chrome中的XSLT

时间:2011-08-24 12:37:49

标签: javascript google-chrome xslt

我想预加载一个XML文档(称为 XMLParam ),并使用setParameter将其作为参数传递给另一个文档( oXML )的XSLT处理。

但是,XSLT不会将它作为节点,节点列表或任何东西处理,只需报告[object Element]

oXML = XMLDoc_load(sXMLURL);
oXMLParam = XMLDoc_load(sXMLParamURL);
oXSLT = XMLDoc_load(sXSLTURL);
var oXSLTProcessor = new XSLTProcessor();
oXSLTProcessor.importStylesheet(oXSLT);
oXSLTProcessor.setParameter(null,"oDocument",oXMLParam.documentElement);
var oResultDoc = oXSLTProcessor.transformToFragment(oXML, document); 


<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:param name="oDocument"/>
    <xsl:template match="/"><p>Parameter:<xsl:copy-of select="$oDocument"/></p></xsl:template>

1 个答案:

答案 0 :(得分:1)

考虑传入要加载的文档的URL作为参数值,然后使用XSLT document函数使用XSLT加载文档。这样就有可能达到你想要的效果。

我担心http://www.w3.org/TR/xslt#top-level-variables没有真正详细说明处理器需要支持哪种类型从应用程序传递到样式表。听起来好像Chrome只是在你传入的DOM元素节点上调用toString,然后XSLT使用字符串而不是你想要的节点集。