使用 DOM 解析 xml 时如何处理缺失标签?

问题描述 投票:0回答:1

我正在尝试使用 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;
                    }
                }
            }
        }
    }
}
java xml parsing dom
1个回答
0
投票

您正在将 XML 解析为 DOM 结构,因为您所需要的只是一个语法正确的 XML 文档。内部人士将谈论“格式良好”的文件。将其与一些英语句子进行比较。只要是一句话就可以了

现在您想要强制只使用特定的标签,并且也许您想要强制它们以正确的数量或顺序出现。您需要在此处定义哪些标签、它们出现的频率和顺序。

此类信息进入语法,该语法将在 XML 架构中定义。

W3C 对这个主题有一个非常好的介绍:

© www.soinside.com 2019 - 2024. All rights reserved.