2014-07-10 85 views
0

我是使用java工作的新手。我想寫出具有這種形式的XML文件:用任意數量的節點生成XML

<option> 
    <name>CompilerOptions</name> 
     <state>Directory1</state> 
     <state>Directory2</state> 
     <state>Directory3</state> 
    </name> 
</option> 

目錄的數量是任意的,依賴於這應該生成XML文件中的代碼的users.Here的部分選擇。

for(int i = 0; i < paths.size(); i++) { 
    option.appendChild(doc.createElement("state").appendChild(doc.createTextNode(paths.get(i)))); 
    } 
    child.appendChild(option); 

的問題是,輸出沒有標籤,這是我預期由doc.createElement(「狀態」)創建。爲什麼不創建這些節點?

這裏有一個例子:

<option> 
    <name>CompilerOptions</name> 
    Directory1 
    Directory2 
    Directory3 
</option> 

感謝您的幫助。

回答

2

你打電話option.appendChild()並通過它的

doc.createElement(...).appendChild(...) 

的結果,但appendChild()返回新追加的孩子,它被附加到節點。所以你實際上用文本節點調用option.appendChild()。你想:

Element state = doc.createElement("state"); 
state.appendChild(doc.createTextNode(paths.get(i))); 
option.appendChild(state); 
+0

偉大的,這是有道理的。 – Skaevola