我想解析Java中的XML文件,它工作得很好,但我並沒有真正得到爲什麼。我有以下代碼(我只是剪斷重要的事情):在Java中處理XML文件,節點混亂
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File(fileName));
NodeList nodeList = document.getDocumentElement().getChildNodes();
for (int i = 0; i < nodeList.getLength(); i++)
{
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element elem = (Element) node;
// Get the value of all sub-elements.
String original = elem.getElementsByTagName("Original")
.item(0).getChildNodes().item(0).getNodeValue();
String translation = elem.getElementsByTagName("Translation").item(0)
.getChildNodes().item(0).getNodeValue();
Integer score = Integer.parseInt(elem.getElementsByTagName("Score")
.item(0).getChildNodes().item(0).getNodeValue());
}
我的XML是簡單的:
<?xml version="1.0" encoding="UTF-8"?>
<Dictionary>
<Word>
<Original>die Unterwäsche</Original >
<Translation>Bielizna</Translation>
<Score>-4</Score>
</Word>
<Word>
<Original>die Müche</Original>
<Translation>Fatyga, trud</Translation>
<Score>0</Score>
</Word>
<Word>
<Original>wetten</Original>
<Translation>założyć się</Translation>
<Score>-6</Score>
</Word>
<Word>
<Original>umsonst</Original>
<Translation>Bez powodu</Translation>
<Score>0</Score>
</Word>
</Dictionary>
大問題是:爲什麼我有9個節點調用nodeList.getLength時()?我打印它們,4個是元素(看起來很好),另外5個是文本節點,但我並沒有真正瞭解它們。爲什麼Node在Element上播放?
第二件事是這一部分:
elem.getElementsByTagName("Score")
.item(0).getChildNodes().item(0).getNodeValue());
我打電話項目(0)到的節點上,但同樣,它是什麼實際?
我真的很感激你的幫助,我很初學,現在我一直在努力。發佈分步指南我的XML部分列出的內容對我來說意味着一個世界。
是什麼'builder',什麼是'document'? – ThisClark
我加了相關的行,對不起。 – KrwawyKefir