我将使用Java中的DOM表示法。
如何区分XML标记是否具有内部值或另一个嵌入式标记? 例如,我可以有:
<item> 2 </item>
或者
<item> <name> item1 </name> </item>
i want to do the following
if(condition1 : there is no tags inside item tag) do ...
else do ...
如何编写条件1?
public static boolean hasChildElements(Element el) {
NodeList children = el.getChildNodes();
for (int i = 0; i < children.getLength(); i++) {
if (children.item(i).getNodeType() == Node.ELEMENT_NODE) {
return true;
}
}
return false;
}
条件1为(! hasChildElements(el))
。
另外,您可以使用getElementsByTagName("*").getLength() == 0
来实现测试。但是,如果存在子元素,则此方法将遍历您正在测试的整个片段,并分配大量内存。
ElementNodes拥有 getElementsByTagName方法。用字符串'*'
作为参数调用此方法(以匹配所有标签名),然后计算结果的数量。如果大于零,则存在子元素。
NodeList nl = docEle.getElementsByTagName("item");
nl.getChildNodes();
x.childElementCount
(其中x
是对您的元素的引用)。如果返回零,则该元素没有子元素。 - Šime Vidas