2013-05-29 28 views
1

有时候,我有一个XML:获取所有子元素忽略空间URI

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

有时W/O的命名空间的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())); 
+1

你如何正在分析文件? – Djon

+0

更新了说明 – Yanko

回答

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']/*");