You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java使用XPath获取result节点后如何提取location和name子节点值

Java从result节点提取location和name取值的方案

以下是两种常用的稳定实现方式:

方法1:使用getElementsByTagName(简单快捷,适合简单结构)

将当前result节点转为Element类型后直接按标签名提取子节点内容,代码示例:

for (int i = 0; i < nodes.getLength(); i++) {
  Node node = nodes.item(i);
  // 校验节点为元素节点
  if (node.getNodeType() == Node.ELEMENT_NODE) {
      Element resultElement = (Element) node;
      // 提取location取值
      String location = resultElement.getElementsByTagName("location").item(0).getTextContent().trim();
      // 提取name取值
      String name = resultElement.getElementsByTagName("name").item(0).getTextContent().trim();
      // 此处可添加业务逻辑使用拿到的两个值
  }
}

方法2:相对路径XPath查询(更灵活,适合复杂结构)

如果XML结构复杂、存在多层嵌套可能出现同名标签,使用XPath相对路径查询更精准,还可以预编译XPath表达式提升性能:

// 提前创建XPath实例、预编译子节点查询表达式,避免循环内重复创建
XPath xpath = XPathFactory.newInstance().newXPath();
XPathExpression locExpr = xpath.compile("location/text()");
XPathExpression nameExpr = xpath.compile("name/text()");

for (int i = 0; i < nodes.getLength(); i++) {
  Node node = nodes.item(i);
  String location = locExpr.evaluate(node).trim();
  String name = nameExpr.evaluate(node).trim();
  // 此处可添加业务逻辑使用拿到的两个值
}

注意事项

  • 示例中添加的trim()用于去除文本首尾的空白字符,若需要保留原XML中的首尾空白可删除该方法调用。
  • 如果业务场景中可能存在result节点缺失location/name标签的情况,需要额外增加空判断逻辑避免空指针异常。
  • 方法1的getElementsByTagName会递归查找当前节点下所有匹配标签名的节点,若确定location和name都是result的直接子节点、没有嵌套同名标签可放心使用,复杂场景优先选择方法2。

内容的提问来源于stack exchange,提问作者Yellowjacket

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:36:09