【问题标题】:Get all child elements disregarding namespace URIs获取所有不考虑命名空间 URI 的子元素
【发布时间】:2013-05-29 12:28:47
【问题描述】:

有时我有一个 XML:

<resource 
    xsi:schemaLocation="http://www.test.com/resource http://test.com/schema/resource 
    xmlns="http://www.test.com/resource"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
</resource>

有时没有命名空间 URI,即

<resource>
...
</resource>

无论命名空间URI如何,如何获取resource的所有子元素?

我正在使用nu.xom.Element 处理元素,并以这种方式构建nu.xom.Document

nu.xom.Builder parser = new nu.xom.Builder();
return parser.build( new ByteArrayInputStream(xmlString.getBytes()) );

【问题讨论】:

  • 你目前如何解析文件?
  • 更新了描述

标签: java xml xom


【解决方案1】:

您尚未指明&lt;resource&gt; 是否为根元素。如果是,那么找到它是微不足道的。如果没有,请通过以下方式查找所有 &lt;resource&gt; 元素:

Nodes resourceNodes = yourDoc.query("//*[local-name()='resource']");
for (int i = 0; i < resourceNodes .size(); i++) {
    Element resource = (Element) resourceNodes .get(i);
    Elements childElements = resource.getChildElements();
    // .. etc
}

或直接:

Nodes resourceChildren = yourDoc.query("//*[local-name()='resource']/*");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    • 1970-01-01
    相关资源
    最近更新 更多