2014-10-05 13 views
1

我正在使用函數Node.getChildNodes();來創建我需要使用的元素的NodeList。這是代碼行:Node.getChildNodes()返回的額外對象是什麼?

NodeList nList = doc.getElementsByTagName("mealsaves").item(0).getChildNodes(); 

當我打印打印「#text」的第一個對象的名字,當我打印的文本內容是打印出兩個空行。看來列表中的每一個其他對象都會這樣做。

有人可以告訴我這個對象是什麼/我可以用它做什麼?

編輯:例如,當打印出該陣列的結果使用該:

for (int i=0;i<nList.getLength();i++) { 
    System.out.println(nList.item(i).getNodeName() + " - " + nList.item(i).getTextContent()); 
} 

它打印這樣的:

#text - 

ms1 - 
       obj1 
       obj2 
       obj3 
       obj4 
       obj5 
       obj6 
       obj7  

#text - 

ms2 - 
       obj1 
       obj2 
       obj3 
       obj4 
       obj5 
       obj6 
       obj7 

#text - 

編輯2:XML代碼

<saves> 
    <diet> 
     <mealsaves> 
      <ms1> 
       <name>obj1</name> 
       <serving>obj2</serving> 
       <calories>obj3</calories> 
       <fat>obj4</fat> 
       <carbs>obj5</carbs> 
       <protein>obj6</protein> 
       <mealtype>obj7</mealtype>   
      </ms1> 
      <ms2> 
       <name>obj1</name> 
       <serving>obj2</serving> 
       <calories>obj3</calories> 
       <fat>obj4</fat> 
       <carbs>obj5</carbs> 
       <protein>obj6</protein> 
       <mealtype>obj7</mealtype>   
      </ms2> 
     </mealsaves> 
    </diet> 
<saves> 
+0

請添加一些上下文。向我們展示相關的XML。向我們展示如何打印它。向我們展示您期望打印的內容,您爲什麼期待以及如何實際打印。 – 2014-10-05 18:52:06

+0

添加更多細節 – alexanderd5398 2014-10-05 19:10:31

回答

2

正是它所說的 - 它是一個文本節點。元素內部和周圍的文本被表示爲文本節點。有時一個文本節點只包含空格。例如,這可能是由於行末或縮進處有額外的空間。

很好記住,根據解析器和平臺的不同,一些空白可能被認爲是「微不足道」的,並且不在分析樹中。

+0

謝謝!我想我明白。所以當我在其中的一個上執行.getTextContent()時,什麼時候可能會返回除空行以外的內容? – alexanderd5398 2014-10-05 18:59:01

+0

@ alexanderd5398:嘗試對具有一些可見文本內容的元素進行操作(例如' hi there') – 2014-10-05 19:00:04

+0

我從該命令獲得的所有元素都有可見的文本內容。它仍然返回空行 – alexanderd5398 2014-10-05 19:03:00

相關問題