gpt4 book ai didi

java - 如何读取特定元素的XML子节点值?

转载 作者:行者123 更新时间:2023-12-01 15:10:32 25 4
gpt4 key购买 nike

我正在尝试使用 DOM 解析器读取具有特定元素的属性值的子节点值。我的 xml 文件:

    <?xml version="1.0" encoding="UTF-8"?>
<RootNode>
<SubNode Sid="1">
<title>some text</title>
<data dId="1">some text</data>
<data dId="2">some text</data>
<ExData>1</ExData>
</SubNode>
<SubNode Sid="2">
<title>some text</title>
<data dId="1">some text</data>
<data dId="2">some text</data>
<data dId="3">some text</data>
<data dId="4">some text</data>
<data dId="5">some text</data>
<ExData>1</ExData>
</SubNode>
<SubNode Sid="3">
<title>some text</title>
<data dId="1">some text</data>
<data dId="2">some text</data>
<data dId="3">some text</data>
<ExData>1</ExData>
</SubNode>
</RootNode>

我正在尝试读取一个子节点data节点值。我已经检查过以下代码:

private void parseDocument()
{
Element docEle = dom.getDocumentElement();
NodeList nl = docEle.getElementsByTagName("SubNode");
if(nl!= null && nl.getLength()>0)
{
for(int i=0; i<nl.getLength();i++)
{
Element el = (Element)nl.item(i);
InfoBean que = getInfoBean(el);
InfoBeanSet.add(que);
}
}
}
private InfoBean getInfoBean(Element el)
{
int sId = Integer.parseInt(el.getAttribute("Sid"));
String title = getTextValue(el,"title");

NodeList SingleOptionNode = el.getElementsByTagName("data");
int nodeLen = SingleOptionNode.getLength();
if(SingleOptionNode != null && nodeLen>0)
{
for(int i=0; i<nodeLen; i++)
{
Element el1 = (Element)SingleOptionNode.item(i);
NodeList nextOption = el1.getChildNodes();
Node currentNode = (Node) nextOption.item(0);
int dId = Integer.parseInt(el1.getAttribute("dId"));
String data = currentNode.getNodeValue();
opt.add(new Option(data, dId));
}
}
String ExData = getTextValue(el,"ExData");
InfoBean ifb = new InfoBean(sId,title,opt,ExData);
return ifb;
}

它给出了所有 3 个子节点的数据节点值。如何读取一个SubNode元素的子节点值和属性值。我可以知道获取所有数据节点值的原因吗?我可以获得一些如何读取一个子节点元素的数据节点值的代码示例吗?任何帮助将不胜感激。

最佳答案

此行引入了对节点列表中所有子节点元素的循环。

   for(int i=0; i<nl.getLength();i++)

尽量不要这样做。

关于java - 如何读取特定元素的XML子节点值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12413443/

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