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

5
我将使用Java的DOM解析器来解析一个XML文件。
假设我有以下XML文件。
<?xml version="1.0"?>

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

</xml>

我想获取“endPoint”的值。可以使用以下代码片段实现(假设已经使用DocumentBuilder解析)

NodeList nodeList = this.doc.getElementByTagName("dotcms");
Node nValue = (Node) nodeList.item(0);
return nValue.getNodeValue();

可以通过字段名称获取字段的值吗?就像这样...

Node nValue = nodeList.getByName("endPoint") 这样的东西...?

2个回答

5

对于这些任务,您应该使用XPath

//endPoint/text()

或者:

/config/dotcms/endPoint/text()

当然,Java内置了XPath的支持:支持
XPath xpath = XPathFactory.newInstance().newXPath();
XPathExpression expr = xpath.compile("//endPoint/text()");
Object value = expr.evaluate(doc, XPathConstants.STRING);

// 太好了!我很感激!简短但有用的回答。 - Moon

0
你还可以使用 jOOX,类似于 jquery 的 DOM 包装器,以编写更少的代码:
// Using css-style selectors
String text1 = $(document).find("endPoint").text();

// Using XPath
String text2 = $(document).xpath("//endPoint").text();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接