我有一個關於XML,Java使用DOM和空節點的問題。我目前正在研究一個項目,其中我抽取了一個抽象機器的XML描述符文件(用於文本解析)並解析一系列輸入字符串。這些抽象機器的實際構建和解釋都已經完成並且工作正常,但我遇到了一個相當有趣的XML需求。具體來說,我需要能夠將一個空的InputString節點變成一個空字符串(「」),並仍然執行我的解析例程。但是,當我嘗試從我的XML樹中提取此空白節點時,會出現此問題。這會導致空指針異常,然後通常會發生不好的事情。這裏是XML的違規片段(注意第一個元素爲空):使用Java處理空節點DOM
//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("");
}
}
我應該如何處理這種情況下空:
<InputStringList>
<InputString></InputString>
<InputString>000</InputString>
<InputString>111</InputString>
<InputString>01001</InputString>
<InputString>1011011</InputString>
<InputString>1011000</InputString>
<InputString>01010</InputString>
<InputString>1010101110</InputString>
</InputStringList>
我使用提取我的琴絃從列表中?我發現了很多刪除空白文本節點的信息,但實際上我仍然必須將空白節點解析爲空字符串。理想情況下,我想避免使用特殊字符來表示空白字符串。
預先感謝您的時間。
我明白了。所以,由於我的元素在技術上沒有下面的文本節點,因此getFirstChild()會爆炸。說得通。而getTextContent()像魅力一樣工作。感謝您及時的回覆。 – phobos51594 2010-10-24 23:36:37