的 XSL

发布于 2024-11-06 02:28:47 字数 93 浏览 0 评论 0原文

的等效 XSL 样式表是什么

What will be the equivalent XSL style sheet for <schema xmlns="http://www.w3.org/2001/XMLSchema">

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

韵柒 2024-11-13 02:28:47

更新:OP提供了他的代码。

使用

<xsl:for-each select="x:schema/x:element">

代替

<xsl:for-each select="schema/element">

搜索/阅读“XPath 中的默认命名空间”。这是常见问题解答

此转换

<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 文档具有默认命名空间,则该文档的任何元素都位于默认命名空间中(而不是“无命名空间”中)。因此,对于此类无前缀名称的文档,不要选择任何节点——因为在默认命名空间中没有单个节点。该文档位于“无命名空间”中。

Update: The OP provided his code.

Use:

<xsl:for-each select="x:schema/x:element">

Instead of:

<xsl:for-each select="schema/element">

Search/read about "default namespace in XPath". This is a F A Q

This transformation:

<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>

when applied on this XML document:

<schema xmlns="http://www.w3.org/2001/XMLSchema">
 <a>
  <b>
   <c>d</c>
  </b>
 </a>
</schema>

produces the wanted result:

d

Explanation: Any unprefixed name in an XPath expression is always considered to be in "no namespace". If the XML document has a default namespace, then any element of this document is in the default namespace (not in "no namespace). Therefore, for such a document unprefixed names don't select any node -- because not a single node in this document is in "no namespace".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文