2010-01-06 502 views
1

我正在處理一個項目,在該項目下我必須從服務器取出原始文件並將其轉換爲XML文件。將原始文件(二進制數據)轉換爲XML文件

java中是否有任何工具可以幫助我完成此任務,如JAXP可用於解析XML文檔?

+5

這真的取決於你的應用程序中的「原始文件」。 – 2010-01-06 13:37:59

回答

1

我想你會需要你以後使用的對象,以創建MyObject,這將是一些豆,你將加載值形成的原始文件,你可以寫這someFile.xml

FileOutputStream os = new FileOutputStream("someFile.xml"); 
XMLEncoder encoder = new XMLEncoder(os); 
MyObject p = new MyObject(); 
p.setFirstName("Mite"); 
encoder.writeObject(p); 
encoder.close(); 

或者你囚徒TransformerFactory去,如果你不需要爲後者使用的對象。

1

是的。這假設原始文件中的文本已經是XML。

你開始與DocumentBuilderFactory得到DocumentBuilder,然後你可以使用它的方法parse()把輸入流爲Document,這是一個內部的XML表示。

如果原始文件包含XML以外的內容,則需要以某種方式進行掃描(您自己的代碼在這裏),並使用您發現的內容從空的Document中構建。

然後,我通常使用TransformerFactory中的TransformerDocument轉換爲文件中的XML文本,但可能有一種更簡單的方法。

0

我認爲,如果你試圖將其加載到一個XmlDocument這將是罰款

1

JAXP也可以用來創建一個新的空文件:

Document dom = DocumentBuilderFactory.newInstance() 
             .newDocumentBuilder() 
             .newDocument(); 

然後你就可以使用該文檔創建元素,並追加並根據需要:

Element root = dom.createElement("root"); 
    dom.appendChild(root); 

但是,正如Jørn在對您的問題發表評論時注意到了,這完全取決於您想對這個「原始」文件做什麼:它應該如何轉換爲XML。只有你知道這一點。

相關問題