XSLT:如何摆脱 XPath 中默认命名空间的前缀? (xmlns=“...”)

2023-12-23

我有一个模板:

<xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns="urn:jboss:domain:1.1"
    xmlns:d="urn:jboss:domain:1.1"
            >

...

<xsl:template match="//d:interfaces/d:interface[@name='management']/d:inet-address">
    ...
</xsl:template>

这有效。

<xsl:template match="//interfaces/interface[@name='management']/inet-address">
    ...
</xsl:template>

尽管我设置了默认命名空间,但为什么这不起作用?


<xsl:template match="//interfaces/interface[@name='management']/inet-address">
     ... 
</xsl:template> 

尽管我设置了默认命名空间,但为什么这不起作用?

这是任何 XSLT 和/或 XPath 列表中最常见的常见问题之一.

XPath 将任何无前缀的名称视为属于“无命名空间”-- 不管事实上可能有一个定义的默认命名空间并且在范围内。

引用W3C XPath 1.0 规范 http://www.w3.org/TR/xpath/#node-tests:

"节点测试中的 QName 使用以下命令扩展为扩展名称 来自表达式上下文的命名空间声明。这是一样的 对开始和结束标签中的元素类型名称进行扩展的方式 除了不使用使用 xmlns 声明的默认命名空间之外:如果 QName 没有前缀,则命名空间 URI 为 null"

因此,上面的模板规则匹配“无命名空间”中的元素,但 XML 文档的元素位于"urn:jboss:domain:1.1"命名空间——因此没有一个节点符合上述规则。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XSLT:如何摆脱 XPath 中默认命名空间的前缀? (xmlns=“...”) 的相关文章

  • Xslt 到 xsl-fo 转换

    我想将 xslt 转换为 xsl fo 但我不太确定我能做到这一点 我尝试将 XML 列表转换为 xsl fo 列表 谁能告诉我在哪里可以找到我在谷歌上搜索了很长时间没有很多这样的例子 我的XML是这样的 p TEXT p ul li It
  • XSLT;将转义文本解析为节点集并提取子元素

    我一整天都在与这个问题作斗争 几乎束手无策 我有一个 XML 文件 其中数据的某些部分存储为转义文本 但它们本身是格式良好的 XML 我想将此文本节点中的整个层次结构转换为节点集并提取其中的数据 我能想到的变量和函数的组合都不起作用 我期望
  • 如何使用scrapy Selector获取节点的innerHTML?

    假设有一些 html 片段 例如 a text in a b text in b b a
  • 如何使用 XSLT 从平面 XML 列表构建树?

    我使用极简 MVC 框架 其中PHP控制器手上的DOM模型 to the XSLT 视图 c f okapi http okapi liip ch 为了构建导航树 我在 MYSQL 中使用了嵌套集 这样 我最终得到一个如下所示的模型 XML
  • 在 XSL 中测试 xs:decimal 的正确方法是什么?

    我试图根据传入的数据显示不同的信息 如果它是整数 我想只显示数字 如果它是小数 我想使用 0 00 模式 是的 我知道 有点混乱 但这就是开发规范 gt 对于这个特定部分 我有以下 XSL 但我无法看到 xsl when 错误消息 预期的表
  • 有人可以推荐一个免费的 xslt 工具吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • XPath 中的 ., 有什么用?

    为什么在某些 XPath 表达式中句号后面使用逗号 这是一个例子 Set nlist doc selectNodes book author first name starts with M 我试图用谷歌搜索这个 但字面意思 运算符似乎不喜
  • XPath JMeter 断言:错误“前缀必须解析为命名空间”

    我正在尝试使用JMeter XPath 断言 https jmeter apache org usermanual component reference html XPath Assertion使用 XPath 断言命令对标签值进行如下操
  • 如何从下面的html中提取数据?

    我想要从中提取数据的 Html 是 div class infoMessageInner p span class ng binding Fiber r best lld till adressen Tj nsterna kan du be
  • 我想在java中使用XQuery进行Xml处理

    我想用XQuery用于从 java 中的 Xml 获取数据 但我没有得到需要为此添加哪个 Jar 我在谷歌上搜索了很多 但没有得到任何有用的例子 例如我得到以下链接 https docs oracle com database 121 AD
  • 当 contains() 工作正常时,xpath 函数ends-with() 工作时出现问题

    我正在尝试获取具有以特定 id 结尾的属性的标签 like span 我想获取 id 以 国家 地区 结尾的跨度我尝试以下xpath span ends with id Country 但我得到以下异常 需要命名空间管理器或 XsltCon
  • libxmljs 的替代品 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 目标 使用 Node js 访问网页 使用 xpath 语法操作 DOM 并打印新的 DOM libxm
  • rvest 函数 html_nodes 返回 {xml_nodeset (0)}

    我正在尝试抓取以下网站的数据框 http stats nba com game 0041700404 playbyplay http stats nba com game 0041700404 playbyplay 我想创建一个表格 其中包
  • 如何使用 XSLT 排列节点层次结构?

    首先 我是一个完全的初学者XSLT 在一个项目中 我们正在以更抽象的方式综合树转换 为了概念证明 我试图将域扩展到简单的XSLT 但让我们看一个例子 我的 XML 文档中有几页 如下所示
  • 如何使用xquery查找节点并向其添加子节点?

    是否可以使用xpath xquery查询特定的xml节点 然后向其导入 添加子节点 示例 代码取自http codepad org gJ1Y2LjM http codepad org gJ1Y2LjM 这是在类似的问题中提出的 但不相同 1
  • Python Selenium - 如何单击表中一组元素中的倒数第三个元素?

    今天是个好日子 有人可以向我解释一下我如何无法获取表中的元素数量吗 我正在浏览多个具有不同长度的表格 并且我总是需要第三个最后一项 我有包含这些的表的 xpath 使用 Selenium 的 Python API 如何获取表中的行数 htt
  • 对编码的 XML 值应用 XSLT 模板

    我有一个 XML 文档 需要将其转换为 HTML XML内容如下
  • EclipseLink MOXy:XmlPath 注释中的逻辑运算符

    逻辑运算符在 EclipseLink MOXy 的 XmlPath 注释中工作吗 我尝试过但无法使其工作 没有抛出异常 并且没有任何内容绑定到 元素 例如 我想在绑定文件中包含如下内容
  • BizTalk:XSLT 与映射工具

    我们正在执行从旧系统生成的 XML 文件到 EDI 834 837 文件的映射过程 我们有 BizTalk 2010 并且正在使用 Microsoft 内置的 EDI 模式 EDI 文件相当复杂 我们获得的 XML 文件也很复杂 有很多部分
  • 在 C# 中使用命名空间别名有什么好处? [复制]

    这个问题在这里已经有答案了 使用命名空间别名有什么好处 仅仅是为了简化编码吗 仅当与类发生冲突时我才使用名称空间别名 对我来说 这根本没有简化 我的意见是 如果没有必要 就不要使用

随机推荐