文档 - 如何通过名称获取标记的值?

Moo*_*oon 5 java xml dom

我正在使用Java的DOM解析器来解析XML文件.

假设我有以下XML

<?xml version="1.0"?>

<config>
    <dotcms>
        <endPoint>ip</endPoint>
    </dotcms>
</config>

</xml>
Run Code Online (Sandbox Code Playgroud)

我喜欢得到'endPoint'的价值.我可以使用以下代码片段完成此操作.(假设我已经用DocumentBuilder解析了它)

NodeList nodeList = this.doc.getElementByTagName("dotcms");
Node nValue = (Node) nodeList.item(0);
return nValue.getNodeValue();
Run Code Online (Sandbox Code Playgroud)

是否可以通过字段名称获取字段的值?喜欢....

Node nValue = nodeList.getByName("endPoint") 这样的事情......?

Tom*_*icz 5

您应该将XPath用于这些类型的任务:

//endPoint/text()
Run Code Online (Sandbox Code Playgroud)

要么:

/config/dotcms/endPoint/text()
Run Code Online (Sandbox Code Playgroud)

当然Java有对XPath 的内置支持:

XPath xpath = XPathFactory.newInstance().newXPath();
XPathExpression expr = xpath.compile("//endPoint/text()");
Object value = expr.evaluate(doc, XPathConstants.STRING);
Run Code Online (Sandbox Code Playgroud)