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

使用Java XML DOM解析XML,如何正确获取标签列表中的单个标签?

如何用Java DOM解析XML中的

你的问题出在代码查询的节点对象不对:当前代码获取的是<labels>容器节点本身,所以NodeList只会有1个元素,调用getTextContent()会把该节点下所有文本内容拼接输出。要获取每个独立的<label>节点,需要调整查询逻辑,以下是两种可行的解决方案:

方案1:直接查询所有

直接遍历XML中所有的<label>标签,这是最直接的方式:

NodeList labelNodes = elem.getElementsByTagName("label");
                
for (int j = 0; j < labelNodes.getLength(); j++) {
    Element label = (Element) labelNodes.item(j);
    System.out.println(label.getTextContent());
}

方案2:先获取容器,再遍历其子

如果需要限定只在某个<labels>容器下查询,可以先拿到容器节点,再查询其内部的<label>:

NodeList labelsList = elem.getElementsByTagName("labels");
// 确保存在<labels>节点
if (labelsList.getLength() > 0) {
    Element labelsContainer = (Element) labelsList.item(0);
    NodeList labelNodes = labelsContainer.getElementsByTagName("label");
    
    for (int j = 0; j < labelNodes.getLength(); j++) {
        Element label = (Element) labelNodes.item(j);
        System.out.println(label.getTextContent());
    }
}

额外注意:修正XML的语法错误

你的XML结构中存在标签闭合错误:<label>的闭合标签写成了</labels>,这会导致DOM解析器无法正确识别节点结构,修正后的XML应为:

<item>
    <title>test</title>
    <labels>
        <label>a</label>
        <label>b</label>
        <label>c</label>
    </labels>
</item>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 10:27:21