我有一个类似html的xml,基本上就是html。我需要在每个元素中获取元素。每个元素都如下所示:
<line tid="744476117"> <attr>1414</attr> <attr>31</attr><attr class="thread_title">title1</attr><attr>author1</attr><attr>date1</attr></line>
我的代码如下所示,它确实识别文件中有50个,但在解析NodeList fstNmElmntLst = fstElmnt.getElementsByTagName("attr");
知道为什么会这样吗?相同的代码已经用于其他应用程序而没有任何问题。
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource is = new InputSource();
is.setCharacterStream(new StringReader(cleanxml));
Document doc = db.parse(is);
doc.getDocumentElement().normalize();
System.out.println("Root element " + doc.getDocumentElement().getNodeName());
NodeList nodeLst = doc.getElementsByTagName("line");
for (int s = 0; s < nodeLst.getLength(); s++) {
System.out.println(nodeLst.getLength());
Node fstNode = nodeLst.item(s);
if (fstNode.getNodeType() == Node.ELEMENT_NODE) {
Element fstElmnt = (Element) fstNode;
NodeList fstNmElmntLst = fstElmnt.getElementsByTagName("attr");
Element fstNmElmnt = (Element) fstNmElmntLst.item(0);
NodeList fstNm = fstNmElmnt.getChildNodes();
System.out.println("attr : " + ((Node) fstNm.item(0)).getNodeValue());
}
}
答案 0 :(得分:2)
<line>
没有导致此问题的任何<attr>
!!