2010-01-06 503 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。只有你知道这一点。

相关问题