在Java中使用文档节点

时间:2013-06-22 14:12:55

标签: java xml dom parent-child document

我正在尝试读取xml文件,例如:http://www1.skysports.com/feeds/11095/news.xml

我需要getTextContent()能够获得<item>个标签的所有标题,描述等。 <title>标记不是<item>标记的子标记,我不想getTextContent()

我已经设置了我的XML阅读器,所以我有:

Document doc = dbuilder.parse(xmlFile);
doc.getDocumentElement().normalize();
String Title = document.getElementsByTagName("title").item(0).getTextContent();

但是此方法会选择不属于<title>的孩子的<item>

我可以将item(0)更改为item(1),但我需要使用此算法来处理各种XML文件,这些文件在没有<title>父级的情况下不一定具有初始<item>

如何选择那些<title>的孩子<item>

1 个答案:

答案 0 :(得分:3)

改用XPath。使这一切变得更加轻松:

    XPathFactory xpf = XPathFactory.newInstance();
    XPath xp = xpf.newXPath();

    NodeList nl = (NodeList) xp.evaluate("//item/title/text()", doc,
            XPathConstants.NODESET);
    for (int i = 0; i < nl.getLength(); ++i) {
        System.out.println(nl.item(i).getNodeValue());
    }