<schema xmlns="http://www.w3.org/2001/XMLSchema">
答案 0 :(得分:0)
更新: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文档具有默认命名空间,则此文档的任何元素都在默认命名空间中(不在“无命名空间”中。因此,对于此类文档,未加前缀的名称不会选择任何节点 - 因为不是单个节点这个文件是“没有命名空间”。