XML几种解析方式

一:通过DOM解析读取文件


DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(new File("E:"+File.separator+"people.xml"));
Nodelist list = doc.getElementByTagName("linkman");
for(int i=0;i<list.getLength();i++){
   Element e = (Element)list.item(i);
   System.out.println("姓名:"+e.getElementByTagName("name").item(0).getFirstChild().getNodeValue());
   System.out.println("邮件:"+e.getElementByTagName("email").item(0).getFirstChild().getNodeValue());
}  

二:通过DOM创建XML文件
1:设置文档格式,创建好各个节点关系,注意文本也属于节点
2:设置传输格式,包括编码格式,要写入的文件的DOM来源,以及要写入的文件地址

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.newDocument();//创建文档
Element addresslist = doc.createElement("addresslist");
Element linkman = doc.createElement("linman");
Element name = doc.createElement("name");
Element email =  doc.createElement("email");
//设置文档中节点关系
name.appendChild(doc.createTextNode("boy_qiang"));
email.appendChild(doc.createTextNode("123456@123.com"));
doc.appendChild(addressslist);
addresslist.appendChild(linkman);
linkman.appendChild(name);
linkman.appendChild(email);
//文档节点关系设置完毕

//准备传输工作
TransformerFactory factory = TransformerFactory.newInstance();
Transformer trans = factory.newTransformer();
trans.setOutputProperty(Outputkeys.ENCODING,"GBK");//设置处理中文格式,
//创建输出文档
DOMSourse sourse = new DOMsourses(doc);
//创建文档要输出到的地址
StreamResult result = new StreamReslut(new File("E:"+File.separator+"people.xml"));
//利用Transfomer实现创建
trans.transformer(sourse,reslut);

三:使用JDOM解析XML文件

SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(new File("E:"+File.separator+"people.xml"));
Element root = doc.getRootElement();
List list = root.getChildren("linkman");
for(int i=0;i<list.size();i++){
Element element = (Element)list.get(i);
String name = element.getChildText("name");
String id = element.getChild("name").getAttributeValue("id");
String email = element.getChildText("eamil");
System.out.pritnln("姓名:"+name+",id="+id);
System.out.println("email:"+email);

四:使用JDOM生成XML文件
1:设置好文档
2:利用XMLOutputter实现输出

Element addresslist = new Element("addresslist");
Element linkman = new Element("linkman");
Element name = new Element("name");
Element email = new Element("email");
Attribute id = new Attribute("id");
Document doc = new Document(addresslist);
name.setText("boy_qiang");
email.setText("123456@123.com");
addresslist.addContent(linkman);
linkman.addContent(name);
linkman.addContent(email);
//到目前为止,文档以及节点关系已设置好

XMLOutputter output = new XMLOutputter();
output.setFormat(output.getFormat().setEncoding("GBK"));
output.output(doc,new FileOutputStream(new File("E:"+File.separator+"people.xml")));
}

五:利用DOM4J完成XML文件解析
利用SAXReader;
File file = new File("E:"+File.separator+"people.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(file);
Element root = (Element)doc.getRootElement();
Iterator it = root.elementIterator();//关键步骤
while(it.hasNext()){
Elemen linkman = (Element)it.next(); 
System.out.println("姓名:"+linkman.elementText("name"));
System.out.println("email:"+linkman.elementText("email"));
}

五:利用DOM4J完成XML文件生成
利用SAXReader;

File file = new File("E:"+File.separator+"people.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(file);
Element root = (Element)doc.getRootElement();
Iterator it = root.elementIterator();//关键步骤
while(it.hasNext()){
Elemen linkman = (Element)it.next(); 
System.out.println("姓名:"+linkman.elementText("name"));
System.out.println("email:"+linkman.elementText("email"));
}

六:利用DOM4J完成XML文件生成
1:设置文档
2:用OutputFormat,XMLWriter实现输出

Document doc = DocumentHelper.createDocument();
Element addresslist = doc.addElement("addresslist");
Element linkman = addresslist.addElement("linkman");
Element name = linkman.addElement("name");
Element eamil = linkman.addElement("email");
name.setText("boy_qiang");
email.setText("123456@13.com");

文档已经创建好等待输出
OutputFormat out = OutputFormat.createPrettyPrint();
out.setEnconding("GBK");
XMLWriter write = new XMLWriter(new FileOutputStream(new File("E:"+File.separator+"peopple.xml")),out);
write.write(doc);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值