我有一个 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 个?