XMLParser using JDOm – [Read-Wirte XML]


JDOM là một lib cho việc đọc viết XML một cách nhanh và gọn hơn . Nó cung cấp các mehtod cho việc read,  thao tác trên XML Document. nó nhanh và là sự tùy chọn cho chúng ta.

Nó có thể làm việc trên cả DOM và SAX. và chúng ta có thể sử dụng JDOM thay thế cho SAX vs DOM

Download JDOM library : Link Download

Bài này mình dùng maven : các bạn thêm vào file porn.xml như sau:


<dependency>
 <groupId>jdom</groupId>
 <artifactId>jdom</artifactId>
 <version>1.1</version>
 </dependency>

Chúng ta có file xml sau :

<?xml version="1.0"?>
<company>
	<staff id="1001">
		<firstname>Kobee</firstname>
		<lastname>Bryan</lastname>
		<address>24/3 TN P.16 GV</address>
		<birthdate>10/10/1991</birthdate>		
	</staff>
	<staff id="1002">
		<firstname>Jenny</firstname>
		<lastname>Nguyen</lastname>
		<address>123 QT P.11 GV</address>
		<birthdate>18/05/1992</birthdate>		
	</staff>
	<staff id="1003">
		<firstname>Justina</firstname>
		<lastname>Tran</lastname>
		<address>Seul 222/222</address>
		<birthdate>01/01/1990</birthdate>		
	</staff>
	<staff id="1004">
		<firstname>Bek</firstname>
		<lastname>Botun</lastname>
		<address>Seso LL GV</address>
		<birthdate>20/10/1994</birthdate>		
	</staff>
</company>

Method cho việc read file xml trên

private static void readXML(String file){
		SAXBuilder builder = new SAXBuilder();
		File xmlFile = new File(file);
		try {
			Document doc = (Document) builder.build(xmlFile);
			Element rootElement = doc.getRootElement();
			List staffList = rootElement.getChildren("staff");

			for (int i = 0; i < staffList.size(); i++) {
				Element staffElement = (Element) staffList.get(i);
				String id = staffElement.getAttributeValue("id");
				String fn = staffElement.getChildText("firstname");
				String ln = staffElement.getChildText("lastname");
				String ad = staffElement.getChildText("address");
				String bd = staffElement.getChildText("birthdate");
				Staff st = new Staff(id, fn, ln, ad, bd);
				System.out.println(st.toString());

			}

		} catch (Exception e) {
			// TODO: handle exception
		}
	}

 

Method dùng cho việc write XML

private static void writeXML(String file) throws IOException{
		Element company = new Element("company");
		Document doc = new Document(company);
		doc.setRootElement(company);

		Staff st = new Staff("10172271", "haha", "hehe", "12/12/12", "10/10/1991");
		Element staff1 = new Element("staff");
		staff1.setAttribute(new Attribute("id", st.getId()));
		staff1.addContent(new Element("firstname").setText(st.getFirstname()));
		staff1.addContent(new Element("lastname").setText(st.getLastName()));
		staff1.addContent(new Element("address").setText(st.getAddress()));
		staff1.addContent(new Element("birthdate").setText(st.getBirthDate()));

		doc.getRootElement().addContent(staff1);

		XMLOutputter xmlOutPut = new XMLOutputter();
		xmlOutPut.setFormat(Format.getPrettyFormat());
		xmlOutPut.output(doc, new FileWriter(file));
		System.out.println("Create file successfull...");
		// see console
		new XMLOutputter().output(doc, System.out);

	}

main của chúng ta gọi :

try {
			readXML("staff.xml");
			writeXML("d:\\jdomxml.xml");
		} catch (IOException e) {
			e.printStackTrace();
		}

Chúc các bạn thành công

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: