我有一个 XML 文档:
<entities xmlns="urn:yahoo:cap">
<entity score="0.988">
<text end="4" endchar="4" start="0" startchar="0">Messi</text>
<wiki_url>http://en.wikipedia.com/wiki/Lionel_Messi</wiki_url>
<types>
<type region="us">/person</type>
</types>
</entity>
</entities>
我有一个TreeMap<String,String> data
存储getTextContent()
和元素"text"
的。"wiki_url"
有些"entity"
s 只有"text"
元素 (no "wiki_url"
),所以我需要一种方法来找出什么时候只有 text 元素作为子元素,什么时候有"wiki_url"
. 我可以使用document.getElementByTag("text")
&document.getElementByTag("wiki_url")
但我会失去文本和 url 之间的关系。
我正在尝试使用以下方法获取元素中的"entity"
元素数量:
NodeList entities = document.getElementsByTagName("entity"); //List of all the entity nodes
int nchild; //Number of children
System.out.println("Number of entities: "+ entities.getLength()); //Prints 1 as expected
nchild=entities.item(0).getChildNodes().getLength(); //Returns 7
但是,如上所示,这会返回 7(我不明白,如果包括孙子,肯定是 3 或 4)然后我将使用孩子的数量来循环遍历它们,以检查是否getNodeName().equals("wiki_url")
并将其保存到数据中正确的。
为什么我只能数 3 个孩子和 1 个孙子,而孩子的数量却是 7 个?