使用SAX解析將xml的檔案內容結構儲存到java物件中
在Java使用Sax解析xml檔案中,我們介紹瞭如何用SAX解析xml檔案,接下來我們繼續學習如何將一個xml檔案的內容結構儲存到一個java例項物件中
一、xml檔案如下
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book id="156"> <name>計算機網路</name> <author>謝希仁</author> <price>39</price> <year>2013</year> </book> <book id="234"> <name>計算機作業系統</name> <author>佚名</author> <price>40</price> <year>2013</year> <edition>第四版</edition> </book> <book id="367"> <name>計算機組成原理</name> <price>35</price> <year>2013</year> <edition>第三版</edition> </book> </bookstore>
二、首先,我們要想寫一個與xml中的book節點結構相同的實體類Book
public class Book { private String id; private String name; private String author; private String price; private String year; private String edition; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } public String getYear() { return year; } public void setYear(String year) { this.year = year; } public String getEdition() { return edition; } public void setEdition(String edition) { this.edition = edition; } @Override public String toString() { return "Book [id=" + id + ", name=" + name + ", author=" + author + ", price=" + price + ", year=" + year + ", edition=" + edition + "]"; } }
三、編寫DefaultHandler類
使用全域性變數來實現不同函式之間的物件共享
public class MyHandler extends DefaultHandler { private String value = null; private List<Book> bookList = new ArrayList<>(); private Book book = null; @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { super.startElement(uri, localName, qName, attributes); if ("book".equals(qName)) { book = new Book(); String id = attributes.getValue("id"); book.setId(id); } } @Override public void characters(char[] ch, int start, int length) throws SAXException { super.characters(ch, start, length); value = new String(ch, start, length); } @Override public void endElement(String uri, String localName, String qName) throws SAXException { super.endElement(uri, localName, qName); switch (qName) { case "book": bookList.add(book); book = null; break; case "name": book.setName(value); break; case "author": book.setAuthor(value); case "year": book.setYear(value); break; case "edition": book.setEdition(<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">value</span><span style="font-size: 12px; font-family: Arial, Helvetica, sans-serif;">);</span> break; case "price": book.setPrice(value); break; } } public List<Book> getBookList() { return bookList; } public void setBookList(List<Book> bookList) { this.bookList = bookList; } }
四、編寫主函式
public class SaxXmlParser {
public static void main(String[] args) {
// 建立SAXParserFactory例項
SAXParserFactory spf = SAXParserFactory.newInstance();
try {
// 建立SAXParser例項
SAXParser parser = spf.newSAXParser();
// 建立DefaultHandler例項
MyHandler handler = new MyHandler();
// 開始解析
parser.parse("book.xml", handler);
for (Book book : handler.getBookList()) {
System.out.println(book);
}
} catch (ParserConfigurationException | SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
五、控制檯輸出結果如下
Book [id=156, name=計算機網路, author=謝希仁, price=39, year=2013, edition=null]
Book [id=234, name=計算機作業系統, author=佚名, price=40, year=2013, edition=第四版]
Book [id=367, name=計算機組成原理, author=null, price=35, year=2013, edition=第三版]
相關推薦
使用SAX解析將xml的檔案內容結構儲存到java物件中
在Java使用Sax解析xml檔案中,我們介紹瞭如何用SAX解析xml檔案,接下來我們繼續學習如何將一個xml檔案的內容結構儲存到一個java例項物件中 一、xml檔案如下 <?xml version="1.0" encoding="UTF-8"?> <
使用SAX解析將xml的檔案儲存為java物件
轉載自:http://blog.csdn.net/kingsonyoung/article/details/5199508 在Java使用Sax解析xml檔案中,我們介紹瞭如何用SAX解析xml檔案,接下來我們繼續學習如何將一個xml檔案的內容結構儲存到一個jav
將Xml檔案遞迴載入到TreeView中
#region 【通過XDocument的方式將Xml檔案遞迴到TreeView控制元件中】 //讀取Xml檔案(XDocument) //1.載入Xml檔案 XDocument document=XDoument.Load("檔名稱.xml"); //2.先獲取跟節點
xml之SAX解析以及資料結構存入java物件
引用來自於:https://www.cnblogs.com/Qian123/p/5231303.html https://blog.csdn.net/qq_36935755/article/details/77106322?utm_source=copy
SAXBuilder解析xml檔案內容用於公共引數的校驗
SAXBuilder解析xml檔案內容xml檔案:<?xml version="1.0" encoding="UTF-8" ?><IELPM name="快捷支付-綁卡支付"><merIn><merchantNo length="16
按照一定的規格將XML檔案中的內容批量匯入至資料庫中
一、前臺點選按鈕 <li> asp:Button ID="ImportMember" runat="server" CssClass="btn btn-primary" Text="匯入會員" /> </li> 二、後臺按鈕宣告、編
Java如何解析某個目錄下xml檔案,將XML檔案轉換為報表資料來源?
在Java開發的報表工具FineReport中,假如在目錄下儲存了幾個XML檔案,希望把XML檔案轉換為報表資料來源,同時希望展示動態xml資料來源的效果,這時可通過引數的方式,動態獲取xml欄位中的值再作為報表資料來源。Northwind.xml記錄資料格式如下:<?
如何將xml檔案轉化為Bitmap
一、獲取windownwidth int windowWidth = MyApplication.getWindowWidth(); 二、將佈局檔案轉化成Bitmap public Bitmap getScrollViewBitmap(RelativeLayout relativeLay
XML的寫入_dom4j新增、刪除、修改Xml檔案內容
XML的寫入_dom4j新增、刪除、修改Xml檔案內容 【工程截圖】 【person.xml】準備一個xml檔案 <?xml version="1.0" encoding="UTF-8"?> <students> <student id="8888
將XML檔案寫入文件
public static void main(String[] args) throws Exception { //建立一個空的Document物件 Document doc = DocumentHelper.createDocument(); //建立一個根元素 Element
Java之讀取XML檔案內容
下面是我的Persons.xml檔案內容: <?xml version="1.0" encoding="utf-8"?> <persons> <person id="0
使用SQLXML將XML檔案對映到關係資料庫
1. My Computer-->System Properties-->Advanced-->Environment Variables add D:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/Bin/ to pa
golang 解析大xml檔案
golang 解析很大的xml in, err := os.Open(os.Args[1]) defer in.Close() decoder := xml.NewDecoder(in) var t xml.Token var text bool for t
php接收base64編碼的檔案內容並儲存
<?php header('Content-type:text/html;charset=utf-8'); //讀取圖片檔案,轉換成base64編碼格式 $image_file = './face_21.png'; $image_info = getimagesize($image_file);
通過python將xml檔案轉換成html檔案
#資料型別的轉換 def main(): maxwidth = 100 #用於規範字段的長度 print_start() count=0 while True: try: line =input() if count == 0
修改tomcat的server.xml檔案後,eclipse在某些情況下會自動還原server.xml檔案內容
原因:在eclipse裡整合新增tomcat時,eclipse會自動儲存tomcat的配置檔案。 解決辦法如下: 在eclipse中,刪除配置的tomcat,然後修改tomcat目錄conf檔案下的s
java 讀取本地excel 檔案,將excel內容轉換成java物件
操作工具 eclipse + maven 1. java操作excel所使用的jar包 poi-ooxml <dependency> <groupId>org.apache.poi</groupId> <
Java&Xml教程(三)使用DOM方式修改XML檔案內容
DOM解析方式也可用於修改XML資料,我們可以使用它完成新增元素、刪除元素、修改元素值、修改元素屬性等操作。 我們的XML檔案,內容如下: employee.xml <?xml version="1.0" encoding="UTF-8" sta
TinyXML讀取XML檔案內容 [大三四八九月實習]
1 XML檔案的節點與元素 為什麼要探討這個問題呢,因為在TinyXML類的成員函式中,有指向下一個結點的成員函式(NextSibling)有指向下一個元素的成員函式(NextSiblingElement),元素在XML檔案基本結構中基本已經形成概念,現在又冒出一個結點。還
如何將XML檔案匯入Excel中
如下圖所示為一個規範的XML檔案,在Excel中可以將規範的XML檔案匯入到Excel成為規範的表格。具體有如下幾種方法: