一尘不染

如何使用Java检索XML的元素值?

java

我是XML的新手。我想根据请求名称阅读以下XML。请帮助我了解如何以Java读取以下XML

<?xml version="1.0"?>
    <config>
        <Request name="ValidateEmailRequest">
            <requestqueue>emailrequest</requestqueue>
            <responsequeue>emailresponse</responsequeue>
        </Request>
        <Request name="CleanEmail">
            <requestqueue>Cleanrequest</requestqueue>
            <responsequeue>Cleanresponse</responsequeue>
        </Request>
    </config>

阅读 422

收藏
2020-03-09

共1个答案

一尘不染

如果你的XML是字符串,则可以执行以下操作:

String xml = ""; //Populated XML String....

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new InputSource(new StringReader(xml)));
Element rootElement = document.getDocumentElement();

如果你的XML在文件中,Document document则将被实例化为:

Document document = builder.parse(new File("file.xml"));

在document.getDocumentElement()返回你是文档的文档元素节点(你的情况)。

一旦有了rootElement,就可以访问元素的属性(通过调用rootElement.getAttribute()method),等等。有关Java的org.w3c.dom.Element的更多方法

有关Java DocumentBuilderDocumentBuilderFactory的更多信息。请记住,提供的示例将创建一个XML DOM树,因此,如果你有大量XML数据,则该树可能会很大。

相关问题。

更新这是获取元素“值”的示例

protected String getString(String tagName, Element element) {
        NodeList list = element.getElementsByTagName(tagName);
        if (list != null && list.getLength() > 0) {
            NodeList subList = list.item(0).getChildNodes();

            if (subList != null && subList.getLength() > 0) {
                return subList.item(0).getNodeValue();
            }
        }

        return null;
    }

你可以有效地称呼它为

String requestQueueName = getString("requestqueue", element);
2020-03-09