Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/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
Variables xsl:document的默认名称空间_Variables_Xslt - Fatal编程技术网

Variables xsl:document的默认名称空间

Variables xsl:document的默认名称空间,variables,xslt,Variables,Xslt,我最初创建了以下变量: <xsl:variable as="document-node()" name="changesTexts"> <xsl:document> <ps > <p>Processed with <ptr target="#{$applicationID}"/>.</p>

我最初创建了以下变量:

<xsl:variable as="document-node()" name="changesTexts">
            <xsl:document>
                <ps >
                    <p>Processed with <ptr target="#{$applicationID}"/>.</p>
                    <p>proofreading according to workflow 1.1.</p>
                </ps>
            </xsl:document>
</xsl:variable>

处理过

根据工作流程1.1进行校对

当我试图这样访问它时

<xsl:variable name="p" select="$changesTexts//p"/>

它不起作用:结果是一个空项()

在我将名称空间添加到根元素之后

<ps xmlns="http://www.music-encoding.org/ns/mei">

我可以通过以下方式访问所需的元素:

  <xsl:variable name="p" select="$changesTexts//mei:p"/>

所以基本上我解决了我的问题,但我想了解事情是如何运作的。我无法确定第一个案例中的元素得到的默认名称空间的类型。我试过:

  • name()(顺便说一句,这也没有显示常规xml文档中的名称空间)
  • 名称空间-uri()

另外,我在调试器中注意到,变量$changesTexts的类型为
文档节点
,在其他情况下,当我使用
fn:document()
时,变量的类型为文档节点(1)。因此,当您在XSLT中使用文本结果元素S在结果树中创建元素R时,显然存在一些细微的差别(?)

,R的扩展名将与S的扩展名相同:也就是说,它将具有相同的本地名和相同的命名空间


因此,由
指令构造的元素的名称空间由样式表中声明的默认名称空间决定(可能在
xsl:stylesheet
元素上,但它可能在某个内部元素上)。

您是否有一个默认名称空间,格式为
xmlns=“…”
在XSLT中的
xsl:stylesheet
元素上?您的问题不能仅使用您的描述来重现:必须有其他原因在起作用。看起来是
@xpath默认命名空间
导致了问题。但是,即使我尝试将元素与相应的前缀匹配,它也不匹配。以下是更新的@micheal.hor257k。