繁体   English   中英

Java XML解析器?

[英]Java XML parser?

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

是的,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。 这是关于它的教程/写作

至于将对象序列化为XML,官方实现是JAXB,它是1.6的Java的一部分。 这是一个简单的例子。 它将允许您对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);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM