XML:直接获取XML元素

时间:2016-10-23 13:46:45

标签: java xml

已经阅读了大量关于阅读XML的文章,但几乎所有文章都在阅读完整的文档并将其打印出来。

但我想获得具体的内容..

<bookstore>
<book category="cooking">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentis</author>
    <year>2005</year>
    <price>30.00</price>
</book>
<book category="children">
    <title lang="es">Harry Potter and the Half-Blood Prince</title>
    <author>J. K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
</book>

这里作为示例读取category = children作者的内容= J.K:Rowling。

是可能的,是的,有人有一些代码吗?

感谢

1 个答案:

答案 0 :(得分:1)

事实上,使用XPath,您可以轻松地检索类别=&#39; children&#39;的价值作者。

没有经过测试的解决方案,但您有这个想法(我已经预先指定了一些软件包来指导您,因为XPATH中存在一些简单的类名以满足其他需求):

    DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = builderFactory.newDocumentBuilder();

    org.w3c.dom.Document document = builder.parse(yourXmlFile);
    XPath xpath = XPathFactory.newInstance().newXPath();

    org.w3c.dom.Node authorNode= (Node) xpath.evaluate("//book[@category='children']/author", document,
        XPathConstants.NODE);
    String author= authorNode.getTextContent();