【问题标题】:How to extract default namespace value from XML in Java or Xpath?如何从 Java 或 Xpath 中的 XML 中提取默认命名空间值?
【发布时间】:2020-10-02 21:09:22
【问题描述】:

如何从纯 Java 中的 XML 或 Java 中的 Xpath 中提取默认命名空间值?

<root xmlns="http://root.com/v1" xmlns:other="http://other.com/v2">
   <childs>
   ...
</root>

我假设默认的 xml 命名空间是:xmlns="http://root.com/v1"

但我可以有其他情况,即相同的 XML 具有如下前缀:

<x:root xmlns:x="http://root.com/v1" xmlns:other="http://other.com/v2">
   <x:childs>
   ...
</x:root>

我只想要“默认”xmlns 中的值或根节点正在使用的 xmlns:x 中的值。我需要这个值:http://root.com/v1

非常感谢您。

【问题讨论】:

  • 可以使用 XPath 表达式 namespace-uri(//*[local-name()="root"])namespace-uri(/*) 访问默认命名空间 root。你会发现很多 xpath java 的代码 sn-ps

标签: java xpath-1.0


【解决方案1】:

@mark61 注释掉 namespace-uri(/*) 工作正常。它忽略前缀并始终从命名空间返回正确的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-23
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多