2010-09-30 72 views
2

我試圖構建一些數據的XML表示。我跟着其他例子,但我無法得到它的工作。我已經將代碼評論到這個基本位,但仍然沒有。此代碼編譯並運行正常,但結果輸出爲空。對dDoc.getDocumentElement()的調用返回null。我究竟做錯了什麼?構建XML文檔:我做錯了

請幫助我,堆棧溢出。你是我唯一的希望。

 DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance(); 
     dFactory.setValidating(false); 
     DocumentBuilder dBuilder = dFactory.newDocumentBuilder(); 
     Document dDoc = dBuilder.newDocument(); 

     // The root document element. 
     Element pageDataElement = dDoc.createElement("page-data"); 
     pageDataElement.appendChild(dDoc.createTextNode("Example Text.")); 

     dDoc.appendChild(pageDataElement); 

     log.debug(dDoc.getTextContent()); 
+0

dDoc沒有文本元素,但它有一個元素:) – willcodejavaforfood 2010-09-30 20:59:14

回答

4

以下運行正常。你只需要調用dDoc.getDocumentElement()。getTextContent()的代替dDoc.getTextContent()

import javax.xml.parsers.DocumentBuilder; 
import javax.xml.parsers.DocumentBuilderFactory; 

import org.w3c.dom.Document; 
import org.w3c.dom.Element; 

public class Demo { 

    public static void main(String[] args) throws Exception { 
     DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance(); 
     dFactory.setValidating(false); 
     DocumentBuilder dBuilder = dFactory.newDocumentBuilder(); 
     Document dDoc = dBuilder.newDocument(); 

     // The root document element. 
     Element pageDataElement = dDoc.createElement("page-data"); 
     pageDataElement.appendChild(dDoc.createTextNode("Example Text.")); 

     dDoc.appendChild(pageDataElement); 

     System.out.println(dDoc.getDocumentElement().getTextContent()); 
    } 
} 

會給輸出:

示例文本。

+0

是的。我不知道爲什麼我認爲getDocumentElement返回null。這不是,只有這個代碼。將在8分鐘內接受 – iandisme 2010-09-30 21:00:16

+0

已經8分鐘了嗎? :) – 2010-10-01 14:42:58

+0

對不起等待...我沒有經常訪問所以:) – iandisme 2010-10-05 17:45:14

0

你也可以使用http://xom.nu/ Xom有更好的API,體積小,速度非常快。