Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 向模板传递路径_Xml_Xslt - Fatal编程技术网

Xml 向模板传递路径

Xml 向模板传递路径,xml,xslt,Xml,Xslt,是否可以将诸如subject/name之类的路径传递给模板,然后将模板中传递的路径用作路径而不是文本字符串。我发现路径被视为文本而不是路径。XPath或XSLT中没有路径数据类型,因此没有。您希望对该参数执行什么类型的操作?获取有关路径指向的文件的信息?有一个EXSLT扩展函数dyn:evaluate(),该函数将字符串值作为XPath表达式求值并返回结果(例如节点集)--请参阅。根据该页面,libxslt、Xalan-J和4XSLT实现了该功能。Saxon也实现了它,但它是在自己的名称空间中实

是否可以将诸如subject/name之类的路径传递给模板,然后将模板中传递的路径用作路径而不是文本字符串。我发现路径被视为文本而不是路径。

XPath或XSLT中没有路径数据类型,因此没有。您希望对该参数执行什么类型的操作?获取有关路径指向的文件的信息?

有一个EXSLT扩展函数
dyn:evaluate()
,该函数将字符串值作为XPath表达式求值并返回结果(例如节点集)--请参阅。根据该页面,libxslt、Xalan-J和4XSLT实现了该功能。Saxon也实现了它,但它是在自己的名称空间中实现的,而不是在EXSLT中实现的。

Saxon实现了这个扩展函数,并且

我取决于你想做什么。如果路径指向xml文件,则可以使用文档(文件名)语法将文件内容放入xsl变量中

<xsl:varialble name="myvar" select="document(somepath)/somenode" />


请注意,首先要确保文件存在,其次要注意最新解析器中的msxml安全设置,默认情况下,这些设置会限制您访问其他文档。

此答案被标记为正确?这充其量只是一个部分答案,考虑到答案中的问题数量,我想作者的观点是相同的。其他帖子列出了允许“动态”行为的可能性,如dyn:evaluate(代价是不再是“标准XSLT”)。