0

我正在尝试读取 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),但我需要此算法来处理各种 XML 文件,这些文件在没有父item(1)级的情况下不一定具有初始值。<title><item>

我怎样才能选择那些是<title>s的孩子的<item>s?

4

1 回答 1

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());
    }
于 2013-06-22T17:06:39.930 回答