有时候我有一个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>
如何获取resource
的所有子元素,无论命名空间URI是什么?
我正在使用nu.xom.Element
来处理元素,我以这种方式构建nu.xom.Document
:
nu.xom.Builder parser = new nu.xom.Builder();
return parser.build( new ByteArrayInputStream(xmlString.getBytes()) );
答案 0 :(得分:0)
您尚未说明<resource>
是否为根元素。如果是,那么找到它是微不足道的。如果没有,请通过以下方式查找所有<resource>
元素:
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']/*");