【发布时间】:2011-05-09 11:23:44
【问题描述】:
<schema xmlns="http://www.w3.org/2001/XMLSchema"> 的等效 XSL 样式表是什么
【问题讨论】:
-
显示您正在使用的代码。如果没有特定部件也能正常工作,你为什么要使用特定部件?
<schema xmlns="http://www.w3.org/2001/XMLSchema"> 的等效 XSL 样式表是什么
【问题讨论】:
更新:OP提供了他的代码。
使用:
<xsl:for-each select="x:schema/x:element">
代替:
<xsl:for-each select="schema/element">
搜索/阅读“XPath 中的默认命名空间”。这是一个F A Q
这种转变:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:x="http://www.w3.org/2001/XMLSchema">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:value-of select="/x:schema/x:a/x:b/x:c"/>
</xsl:template>
</xsl:stylesheet>
应用于此 XML 文档时:
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<a>
<b>
<c>d</c>
</b>
</a>
</schema>
产生想要的结果:
d
说明:XPath 表达式中的任何无前缀名称始终被视为“无命名空间”。如果 XML 文档具有默认命名空间,则该文档的任何元素都在默认命名空间中(不在“无命名空间”中)。因此,对于这样的文档,无前缀名称不要选择任何节点——因为在此文档位于“无命名空间”中。
【讨论】:
U P D A T E 中提出的代码更改应用于我的答案?如果你这样做了,你的代码就会像对我一样工作。仔细阅读我的回答——更新在最上面。