簡體   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