将原始文件(二进制数据)转换为XML文件

时间:2010-01-06 13:34:18

标签: java xml jaxp

我正在开发一个项目,根据该项目,我必须从服务器获取原始文件并将其转换为XML文件。

java中是否有可用于帮助我完成此任务的工具,例如 JAXP 可用于解析XML文档?

4 个答案:

答案 0 :(得分:1)

是。这假设原始文件中的文本已经是XML。

您从DocumentBuilderFactory开始获取DocumentBuilder,然后您可以使用其parse()方法将输入流转换为Document,这是一个内部XML表示。

如果原始文件包含XML之外的其他内容,您将需要以某种方式扫描它(此处是您自己的代码)并使用您从空Document开始构建的内容。

然后,我通常使用Transformer中的TransformerFactoryDocument转换为文件中的XML文本,但可能有更简单的方法。

答案 1 :(得分:1)

我想你需要你的对象供以后使用,所以创建MyObject将是一个bean,你将从Raw文件加载值,你可以将它写入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

答案 2 :(得分:1)

JAXP还可用于创建新的空文档:

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

然后您可以使用该文档创建元素,并根据需要附加它们:

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

但是,正如Jørn在对您的问题的评论中指出的那样,这完全取决于您对此“原始”文件的处理方式:如何将其转换为XML。只有你知道。

答案 3 :(得分:0)

我认为如果你尝试在XmlDocument中加载它就没问题了