0

我正在尝试解析具有以下结构的 xml 结构

这是我为解析它而编写的代码片段

  doc.getDocumentElement().normalize();
        System.out.println ("Root element: " +
                    doc.getDocumentElement().getNodeName());//prints GoodReadsResponse correctly
        NodeList bk = doc.getElementsByTagName("book");// single all encompassing element in response

        Node n= bk.item(1);// since the 0th node is id the 1st must be the title
        System.out.println("Node value"+n.getLocalName());
        Element e=(Element)n;
        NodeList titleList= e.getElementsByTagName("title");//get the title
        Element titleElem = (Element) titleList.item(1);
        Node titleNode = titleElem.getChildNodes().item(0);// get the node value
        book.setTitle(titleNode.getLocalName());// this prints null instead of printing Hamlet--why??
        System.out.println("Title in parser"+titleNode.getLocalName());//null again

编辑:代码中指出的问题titleNode.getLocalName()是始终为空,我无法弄清楚原因。我已将我的思想结构作为注释放在代码中。知道为什么会这样吗?指针将不胜感激!

4

1 回答 1

1

以下代码

NodeList bk = doc.getElementsByTagName("book"); //This get All BOOKS

返回所有书籍项目的 NodeList,因为您的 xml 中只有一本书,您应该遵循

Node n= bk.item(0);

在这种情况下 n = book node 你也必须为 Title 做同样的事情

NodeList titleList= e.getElementsByTagName("title");//get All titles
Element titleElem = (Element) titleList.item(0);

然后你的其余代码应该可以正常工作!

于 2013-09-12T01:12:51.630 回答