Java: как разобрать HTML-подобный XML - PullRequest
0 голосов
/ 10 апреля 2010

У меня есть 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, но при синтаксическом анализе выдает NULLPointException

Есть идеи, почему это происходит? Этот же код был использован для других приложений без проблем.

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());
 }
 }

1 Ответ

2 голосов
/ 10 апреля 2010

проблема решена! У одного из <line> нет ни одного <attr>, который вызывает эту проблему !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...