ParseDataBetweenJavaCollection(List<T>)AndXML

 1、将带有范型的JavaColl存储的数据转化为XML格式(ParseXML)

所需依赖:

<dependency>
    <groupId>xom</groupId>
    <artifactId>xom</artifactId> 
    <version>1.3.5</version>
</dependency>

 JAVA实现:

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Arrays;
import java.util.List;
import org.testng.annotations.Test;
import nu.xom.Document;
import nu.xom.Element;
import nu.xom.Serializer;

public class ParseJavaCollToXML {
	public static class Person {
		private String nameStr, AddrStr,sexStr;

		public Person(String first, String last,String sex) {
			this.nameStr = first;
			this.AddrStr = last;
			this.sexStr = sex;
		}

		// Produce an XML Element from this Person object:
		public Element getXML() {
			Element person = new Element("person");
			Element firstName = new Element("nameStr");
			firstName.appendChild(nameStr);
			Element lastName = new Element("AddrStr");
			lastName.appendChild(AddrStr);
			Element sexTag = new Element("sexTag");
			sexTag.appendChild(sexStr);
			person.appendChild(firstName);
			person.appendChild(lastName);
			person.appendChild(sexTag);
			return person;
		}
		
		// Constructor to restore a Person from an XML Element:
		public Person(Element person) {
			nameStr = person.getFirstChildElement("nameStr").getValue();
			AddrStr = person.getFirstChildElement("AddrStr").getValue();
			sexStr = person.getFirstChildElement("sexTag").getValue();
		}

		public String toString() {
			return nameStr + " &" + AddrStr+ " &" + sexStr;
		}

		
	}
	public static void format(OutputStream os, Document doc) throws Exception {
		Serializer serializer = new Serializer(os, "UTF-8");
		serializer.setIndent(4);
		serializer.setMaxLength(60);
		serializer.write(doc);
		serializer.flush();
	}
	@Test
	public void executeParse() throws Exception {
		List<Person> people = Arrays.asList(new Person("Dr.Bumsen", "Honeydew","boyTag"), new Person("Gonzo", "The Great","girlTag"),
				new Person("Phillip J.", "Fly","boyTag"));
		Element root = new Element("people");
		for (Person p : people) {
			root.appendChild(p.getXML());
		}
		Document doc = new Document(root);
		this.format(System.out, doc);
		this.format(new BufferedOutputStream(new FileOutputStream("D:\\File_Daily\\FileOutputStream_Home\\People.xml")), doc); //输出到文件
	}
}

XML格式输出

<?xml version="1.0" encoding="UTF-8"?>
<people>
    <person>
        <nameStr>Dr.Bumsen</nameStr>
        <AddrStr>Honeydew</AddrStr>
        <sexTag>boyTag</sexTag>
    </person>
    <person>
        <nameStr>Gonzo</nameStr>
        <AddrStr>The Great</AddrStr>
        <sexTag>girlTag</sexTag>
    </person>
    <person>
        <nameStr>Phillip J.</nameStr>
        <AddrStr>Fly</AddrStr>
        <sexTag>boyTag</sexTag>
    </person>
</people>

2、XML数据解析

import java.util.ArrayList;
import java.util.List;
import org.testng.annotations.Test;
import mix_daily.ParseJavaCollToXML.Person;
import nu.xom.Builder;
import nu.xom.Document;
import nu.xom.Elements;

public class ParseXmlToJavaBean {
	List<Person> arrrList= new ArrayList<Person>();
	  public List<Person> getPeople(String fileName) throws Exception{
	        Document doc = new Builder().build(fileName);
	        Elements elements = doc.getRootElement().getChildElements();
	        for (int i = 0; i < elements.size(); ++i){
	        	arrrList.add(new Person(elements.get(i)));
	        }
	        return arrrList;
	    }
	  
	  @Test
	    public  void getData() throws Exception {
	    	arrrList=    this.getPeople("file:/D:/File_Daily/FileOutputStream_Home/People.xml");
	    	for (Person person : arrrList) {
	    		System.out.println(person);
			}
	    }
	
}

此处输出以JavaObject形式(Person)

Dr.Bumsen &Honeydew &boyTag
Gonzo &The Great &girlTag
Phillip J. &Fly &boyTag

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值