Java XML-从特定节点提取值
我正在努力从XML文档中的特定节点提取值。我正在使用w3c.DOM,因为我已经找到了很多关于它的教程,但是现在我找不到任何适合这个任务的好教程——我不得不使用XPath来完成这个任务 我始终知道指向某个节点的确切路径(并将其作为字符串传递,例如:Java XML-从特定节点提取值,java,xml,dom,xpath,Java,Xml,Dom,Xpath,我正在努力从XML文档中的特定节点提取值。我正在使用w3c.DOM,因为我已经找到了很多关于它的教程,但是现在我找不到任何适合这个任务的好教程——我不得不使用XPath来完成这个任务 我始终知道指向某个节点的确切路径(并将其作为字符串传递,例如:“Car/Wheels/Wheel[@Index='x´]/”),我需要从该节点提取一个值(字符串)并返回它(稍后我将字符串转换为其他方法中的双精度和整数)。变量myDoc是文档myDoc 如何获得该值 private String xPathValue
“Car/Wheels/Wheel[@Index='x´]/”
),我需要从该节点提取一个值(字符串)并返回它(稍后我将字符串转换为其他方法中的双精度和整数)。变量myDoc是文档myDoc
如何获得该值
private String xPathValue(String path){
XPath myPath = XPathFactory.newInstance().newXPath();
XPathExpression expr = xpath.compile(path);
String result = (String)expr.evaluate(myDoc);
return result;
}
但是这不起作用,我不想创建任何节点列表,因为我知道确切的路径。我正在寻找类似于Node.getTextContent()的东西代码>您有两个选项
1) 更改xPath以返回节点的值,而不是节点本身
使用表达式:Car/Wheels/Wheel[@Index='x´]/text()
2) 使用相同的xpath查询,但返回节点类型
使用表达式:Car/Wheels/Wheel[@Index='x')
private String xPathValue(String path) {
XPath myPath = XPathFactory.newInstance().newXPath();
XPathExpression expr = xpath.compile(path);
Node result = (Node)expr.evaluate(myDoc, XPathConstants.NODE);
return result.getTextContent();
}
你有两个选择
1) 更改xPath以返回节点的值,而不是节点本身
使用表达式:Car/Wheels/Wheel[@Index='x´]/text()
2) 使用相同的xpath查询,但返回节点类型
使用表达式:Car/Wheels/Wheel[@Index='x')
private String xPathValue(String path) {
XPath myPath = XPathFactory.newInstance().newXPath();
XPathExpression expr = xpath.compile(path);
Node result = (Node)expr.evaluate(myDoc, XPathConstants.NODE);
return result.getTextContent();
}
您的XML文档在哪里?根据您的XPath表达式(您实际选择的是什么),您将以不同的方式处理结果(在不同的对象中,例如NodeList
,Node
,String
。显示您的实际代码和XML。您的XML文档在哪里?取决于您的XPath表达式(您实际选择的是什么)您将以不同的方式处理结果(在不同的对象中,例如节点列表
,节点
,字符串
。显示您的实际代码和XML。哇,这个解决方案确实有效,非常感谢。这是一个非常简单的技巧。哇,这个解决方案确实有效,非常感谢。这是一个非常简单的技巧。