我正在尝试使用 DOM 进行 XML 解析,但问题是某些地方缺少标签。告诉我如何处理这种情况,以便在没有它的情况下,将其他一些字符串写入 ArrayList(例如,“无数据”)?我是 Java 新手。我是按照教程做的
类似内容的XML:
<item>
<title>number 1</title>
</item>
<item>
<title>number 2</title>
<enclosure url="https://www.google.com/"/>
</item>
部分Java代码:
List<String> title = new ArrayList<>();
List<String> enclosure = new ArrayList<>();
NodeList itemNodeList = document.getElementsByTagName("item");
for (int i = 0; i < itemNodeList.getLength(); i++){
if (itemNodeList.item(i).getNodeType() == Node.ELEMENT_NODE){
Element itemElement = (Element) itemNodeList.item(i);
NodeList childNodes = itemElement.getChildNodes();
for (int j = 0; j < childNodes.getLength(); j++){
if (childNodes.item(j).getNodeType() == Node.ELEMENT_NODE){
Element childElement = (Element) childNodes.item(j);
switch (childElement.getNodeName()){
case "title":{
title.add(childElement.getTextContent());
break;
}
case "enclosure":{
String info = childElement.getAttribute("url");
enclosure.add(info);
break;
}
}
}
}
}
}
您正在将 XML 解析为 DOM 结构,因为您所需要的只是一个语法正确的 XML 文档。内部人士将谈论“格式良好”的文件。将其与一些英语句子进行比较。只要是一句话就可以了
现在您想要强制只使用特定的标签,并且也许您想要强制它们以正确的数量或顺序出现。您需要在此处定义哪些标签、它们出现的频率和顺序。
此类信息进入语法,该语法将在 XML 架构中定义。
W3C 对这个主题有一个非常好的介绍: