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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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
Xslt 将转义xml转换为当前文档的节点_Xslt - Fatal编程技术网

Xslt 将转义xml转换为当前文档的节点

Xslt 将转义xml转换为当前文档的节点,xslt,Xslt,我正在处理一组相互关联的文档,这些文档是通过单个XSL和处理收集的(根据到目前为止完成的内容和处理确定要使用的URL) 例如,使用my XSL从中提取文档时使用: <xsl:for-each select= "(document('<someURL>')//atom:entry/atom:content/m:properties/d:PresentationContent) [position()=1]"> <xsl:call-template name="f

我正在处理一组相互关联的文档,这些文档是通过单个XSL和处理收集的(根据到目前为止完成的内容和处理确定要使用的URL)

例如,使用my XSL从中提取文档时使用:

<xsl:for-each select=
"(document('<someURL>')//atom:entry/atom:content/m:properties/d:PresentationContent) 
[position()=1]">
  <xsl:call-template name="formHandler"/>
</xsl:for-each>
XSL中是否有方法获取文档、将编码字符串转换为XML并将节点视为文档的一部分进行处理,以便将示例视为:

//atom:entry/atom:content/m:properties/d:PresentationContent/atom:Component/atom:Id 

我已经走了很长的一段路,在这个阶段改变这一点对我来说将是非常昂贵的,所以我非常感激得到的任何帮助。(备份计划是构造一个http代理,我通过它发出请求并让代理清除响应。)

使用XSLT 3.0可以使用以下功能:

<xsl:template name="formHandler">
    <xsl:apply-templates select="parse-xml(text())/Component/Id" />
</xsl:template>


因为转义的XML没有任何声明的名称空间或名称空间前缀,所以应该在没有名称空间的情况下对元素进行寻址。

“XSL中是否有任何方法可以获取文档、将编码的字符串转换为XML并处理节点,就好像它们是文档的一部分”——而不使用XSLT扩展函数?不,当然是延期了。但是你需要说明你使用的是什么处理器,这个程序将不再是100%可移植的了。目前我的开发环境中有Saxon6 5.5、SaxonPE、SaxonEE、SaxonHE、JAXP和XALAN。执行环境是基于groovy和java的——因此,如果我可以将库加载到其中(并且是免费的!),那么我将使用它。XSLT 2.0 Saxon6 5.5。Saxon 6.5.5没有对等版本,但您必须始终编写自己的Java函数。@hr_117:这不正确-不是每个解析器都实现DOE,因为它不是强制性的。
<xsl:template name="formHandler">
    <xsl:apply-templates select="parse-xml(text())/Component/Id" />
</xsl:template>