Java Can';在Xerces或Neko中的节点上调用getElementsByTagName?
大家好,我正在尝试使用Java中的Neko/Xerces解析DOM树Java Can';在Xerces或Neko中的节点上调用getElementsByTagName?,java,xml,dom,xerces,neko,Java,Xml,Dom,Xerces,Neko,大家好,我正在尝试使用Java中的Neko/Xerces解析DOM树 NodeList divs = this.doc.getElementsByTagName("DIV"); for(int i=0; i < divs.getLength(); i++) { NodeList images = divs.item(i).parentNode().getElementsByTagName("IMG"); // operate on these } nodelistdivs
NodeList divs = this.doc.getElementsByTagName("DIV");
for(int i=0; i < divs.getLength(); i++) {
NodeList images = divs.item(i).parentNode().getElementsByTagName("IMG");
// operate on these
}
nodelistdivs=this.doc.getElementsByTagName(“DIV”);
对于(int i=0;i
这是我理想中想要做的。似乎我只能对文档本身调用getElementsByTagName
?我做错什么了吗?我应该能够在节点
元素上调用它吗
我可以从文件中看到它不在那里:所以也许我需要用另一种方式来做
谢谢 是的,这很奇怪。Python的xml.dom.minidom有一个Node.getElementsByTagName。也许这不是标准的一部分。相反,您可以在
divs.item(i).parentNode().getChildNodes()
上迭代一个内部循环,NodeList只返回节点,而getElementsByTagName只在上可用,因此需要将节点强制转换为元素,下面是一个示例
final NodeList images = ((Element)divs.item(i).getParentNode()).getElementsByTagName("IMG");
但是要小心,因为它假定getParentNode()总是返回一个元素
这样做会更安全,但会更加冗长
final Node n = divs.item(i).getParentNode();
if(n instanceof Element) {
final Element e = (Element)n;
e.getElementsByTagName("IMG");
}