java - 为 Java 解析 XML
问题描述
存在这样的 XML 文档:
<root>
<a/>
<a/>
<a/>
<b>
<c/>
<d/>
<c/>
<d/>
<c/>
<d/>
</b>
</root>
以下代码用于获取“a”NodeList:
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlfile);
doc.getDocumentElement().normalize();
NodeList aNodes = doc.getElementsByTagName("a");
但是如何在 Java 中检索“c”的 NodeList?我试图获取“b”节点的节点,但没有结果,getlength() = 0。
NodeList bNodes = doc.getElementsByTagName("b");
NodeList cNodes = bNodes.item(0).getChildNodes();
解决方案
doc.getElementsByTagName("c")
你可以像这样得到它们。
NodeList cNodes = doc.getElementsByTagName("c");
for (int i = 0; i < cNodes.getLength(); ++i)
System.out.println(cNodes.item(i));
输出:
[c: null]
[c: null]
[c: null]
我还可以检索“b”的 NodeList。
NodeList bNodes = doc.getElementsByTagName("b");
NodeList bChildren = bNodes.item(0).getChildNodes();
for (int i = 0; i < bChildren.getLength(); ++i)
System.out.println(bChildren.item(i));
输出:
[#text:
]
[c: null]
[#text:
]
[d: null]
[#text:
]
[c: null]
[#text:
]
[d: null]
[#text:
]
[c: null]
[#text:
]
[d: null]
[#text:
]
推荐阅读
- python - 速卖通网络刮刀不重复
- javascript - Variable not updating in recursive call
- reactjs - How do I solve the npm start error in vs code?
- javascript - 无法在输入类型日期中设置日期
- raspberry-pi - 如何使 pkg-config 找到 libpcap
- powershell - Get-RDUsersession 在任务计划程序中不起作用
- c++ - 当命令行参数为空时,C++ 执行操作
- asp.net-core-5.0 - 如何在 ASP.Net Core 5 中将共享代码添加到“_layout.cshtml”中
- node-red - 如何使用 NODE RED 确认事件警报
- firebase - 构建前下载数据 - 方法