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。