gpt4 book ai didi

java - 如何在java中为nodelist获取重复元素的子节点

转载 作者:行者123 更新时间:2023-12-01 11:06:49 26 4
gpt4 key购买 nike

我需要获取 name 元素的值,该元素是 e 元素的子元素:

<a>
<b>
<c>
<d>
<e><name>123</name></e>
<e><name>456</name></e>
<e><name>456</name></e>
</d>
</c>
</b>
</a>

这是我的代码:

NodeList lineItemAttributeChildrenList =
doc.getElementsByTagName("e").item(0).getChildNodes();

if(lineItemAttributeChildrenList != null &&
lineItemAttributeChildrenList.getLength() > 0) {
System.out.println("Inside if and checking length" +
lineItemAttributeChildrenList.getLength());

for (int i = 0; i < lineItemAttributeChildrenList.getLength(); i++) {
System.out.println("i " + i);
System.out.println("inside for");
System.out.println("name==============" +
lineItemAttributeChildrenList.item(i).getNodeName());
System.out.println("value==============" +
lineItemAttributeChildrenList.item(i).getTextContent());
}
}

从上面的代码中,我只获取了 e 元素的第一个内部元素名称值,但对于其余 2 个元素,我无法获取这些值。它不会转到 for 循环中的第二个 e 元素。

最佳答案

您仅访问第一项,这就是您获得 1 个结果的原因。尝试下面。检查 eNodes.item(z) 中的“z”

    NodeList eNodes = doc.getElementsByTagName("e");
for (int z = 0; z < eNodes.getLength(); z++) {
NodeList LineItemAttributeChildrenList = eNodes.item(z).getChildNodes();
if (LineItemAttributeChildrenList != null && LineItemAttributeChildrenList.getLength() > 0) {
System.out.println("Inside if and checking length" + LineItemAttributeChildrenList.getLength());
for (int i = 0; i < LineItemAttributeChildrenList.getLength(); i++) {
System.out.println("i " + i);

System.out.println("inside for");
System.out.println("name==============" + LineItemAttributeChildrenList.item(i).getNodeName());
System.out.println("value==============" + LineItemAttributeChildrenList.item(i).getTextContent());

}

}

}

您可以直接获取名称节点并迭代它以获取如下值

NodeList nameNodes = doc.getElementsByTagName("name");
for (int i = 0; i < nameNodes.getLength(); i++) {
String value = nameNodes.item(i).getTextContent();
System.out.println("value==============" + value);
}

关于java - 如何在java中为nodelist获取重复元素的子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32867452/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com