我有一个关于XML、Java使用DOM和空节点的问题。我目前正在做一个项目,在这个项目中,我获取一个抽象机器的XML描述符文件(用于文本解析),并用它们解析一系列输入字符串。这些抽象机器的实际构建和解释都已经完成并且工作得很好,但是我遇到了一个相当有趣的XML需求。具体来说,我需要能够将空的inputstring节点转换为空的字符串(“”),并且仍然能够执行我的解析例程。但是,当我尝试从XML树中提取这个空白节点时,就会出现问题。这会导致空指针异常,然后通常会发生坏事情。下面是有问题的XML片段(注意,第一个元素是空的):
000
111
01001
1011011
1011000
01010
1010101110
我从列表中提取字符串时使用:
//Get input strings to be validated
xmlElement = (Element)xmlMachine.getElementsByTagName(XML_INPUT_STRING_LIST).item(0);
xmlNodeList = xmlElement.getElementsByTagName(XML_INPUT_STRING);
for (int j = 0; j < xmlNodeList.getLength(); j++) {
//Add input string to list
if (xmlNodeList.item(j).getFirstChild().getNodeValue() != null) {
arrInputStrings.add(xmlNodeList.item(j).getFirstChild().getNodeValue());
} else {
arrInputStrings.add("");
}
}
我该怎么处理这个空箱子?我已经找到了很多关于删除空白文本节点的信息,但我仍然不得不将空白节点解析为空字符串。理想情况下,我希望避免使用特殊字符来表示空字符串。
提前谢谢你的时间。