Java XML解析器?

时间:2011-08-22 20:48:09

标签: java xml

我目前正在将我在Visual Basic .NET(2005品种)中编写的程序转换为Java。它使用内置的XML方法来解析和生成用户保存的数据,Java是否具有内置的等效功能,或者我是否必须更改文件处理实现? (我不愿意,有很多代码我不得不改变。)

2 个答案:

答案 0 :(得分:4)

是的,Java可以解析XML。这是一个示例,它接受一个包含XML的String并从中构建一个Document对象:

DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
InputSource inputSource = new InputSource(new StringReader(xml));
Document document = documentBuilder.parse(inputSource);

然后,您可以使用XPath API查询dom。这是关于它的tutorial/writeup

就将对象序列化为XML而言,官方实现是JAXB,它自1.6起就是Java的一部分。 Here's一个简单的例子。它允许您对XML进行序列化和反序列化。

你也可以手动创建一个DOM对象并为其添加节点,但这有点单调乏味:

DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.newDocument();

Element rootNode = document.createElement("root");

Element childNode = document.createElement("child");
childNode.setTextContent("I am a child node");
childNode.setAttribute("attr", "value");

rootNode.appendChild(childNode);
document.appendChild(rootNode);

答案 1 :(得分:0)

我假设您的意思是属性/结构是通过类/ bean本身生成的?如果是这样,那么答案就是[没有第三方组件]。我之前使用过XStream,这是我最接近.NET的XML类序列化的。