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

如何使用XPath选取符合条件的多个节点值?(Dom4j场景)

解决Dom4j获取所有符合XPath条件的节点值问题

核心方案

selectSingleNode仅返回匹配的第一个节点,要获取全部符合条件的value节点值,需改用selectNodes方法获取节点列表,再遍历提取文本内容。

具体实现步骤

    1. 加载XML文档并获取根节点
    1. 调用selectNodes执行目标XPath表达式,得到所有匹配的value节点集合
    1. 遍历节点集合,逐个提取节点的文本值

示例代码

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import java.util.List;

public class Dom4jNodeFetch {
    public static void main(String[] args) throws DocumentException {
        // 加载XML文档(可替换为文件路径、输入流等方式)
        SAXReader reader = new SAXReader();
        Document doc = reader.read("your_xml_file.xml");
        
        // 执行XPath获取所有匹配节点
        String targetXpath = "/X/X1/X2[@code='b']/X3/value";
        List<Node> valueNodes = doc.selectNodes(targetXpath);
        
        // 遍历提取值
        for (Node node : valueNodes) {
            String val = node.getText();
            System.out.println(val); // 输出预期的x3b11、X3b12
        }
    }
}

注意要点

  • 确保项目已正确引入Dom4j依赖
  • 验证XPath表达式与XML结构的匹配性,若存在命名空间需额外处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 07:06:33