JavaWeb学习笔记——XML解析

 

DOM解析操作

 

 

只在跟节点<addresslist>下面建立一个子节点<name>

<?xml version="1.0" encoding="UTF-8"?>
<addresslist>
	<linkman>
		<name>张三</name>
		<email>www.baidu.com</email>
	</linkman>
	
	<linkman>
		<name>李四</name>
		<email>www.sina.com</email>
	</linkman>
</addresslist>

 

import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

//=================================================
// File Name       :	DOM_demo
//------------------------------------------------------------------------------
// Author          :	Common

//类名:BinarySearch_Find
//属性:
//方法:


//主类
//Function        : 	DOM_demo
public class DOM_demo {

	public static void main(String[] args) throws Exception{
		// TODO 自动生成的方法存根
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();	//建立DocumentBuilderFactory
		DocumentBuilder builder = factory.newDocumentBuilder();		//建立DocumentBuilder
		Document doc = null;
		try{
			doc = builder.parse("/home/common/software/coding/HelloWord/JavaWeb/bin/dom_name.xml");
		}catch(SAXException e){
			e.printStackTrace();
		}catch(IOException e){
			e.printStackTrace();
		}
		NodeList nl = doc.getElementsByTagName("name");		//查找name节点
		System.out.println("姓名:"+nl.item(1).getFirstChild().getNodeValue());		//输出第1个节点的内容
	}

}

 

一些DOM操作,循环输出节点信息

import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Element;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;


//=================================================
// File Name       :	DOM_demo
//------------------------------------------------------------------------------
// Author          :	Common

//类名:BinarySearch_Find
//属性:
//方法:


//主类
//Function        : 	DOM_demo
public class DOM_demo {

	public static void main(String[] args) throws Exception{
		// TODO 自动生成的方法存根
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();	//建立DocumentBuilderFactory
		DocumentBuilder builder = factory.newDocumentBuilder();		//建立DocumentBuilder
		Document doc = null;
		try{
			doc = builder.parse("/home/common/software/coding/HelloWord/JavaWeb/bin/dom_name.xml");
		}catch(SAXException e){
			e.printStackTrace();
		}catch(IOException e){
			e.printStackTrace();
		}
		
//		NodeList nl = doc.getElementsByTagName("name");		//查找name节点
//		System.out.println("姓名:"+nl.item(1).getFirstChild().getNodeValue());		//输出第1个节点的内容
		
		NodeList lm = doc.getElementsByTagName("linkman");		//查找linkman节点
		for(int i=0;i<lm.getLength();i++){
			Element e = (Element)lm.item(i);		//取得每一个元素
			System.out.println("姓名:"+e.getElementsByTagName("name").item(0).getFirstChild().getNodeValue());
			System.out.println("邮箱:"+e.getElementsByTagName("email").item(0).getFirstChild().getNodeValue());
		}
	}

}

 

生成XML文件

import java.io.File;
import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;


//=================================================
// File Name       :	DOM_demo
//------------------------------------------------------------------------------
// Author          :	Common

//类名:BinarySearch_Find
//属性:
//方法:


//主类
//Function        : 	DOM_demo
public class DOM_demo {

	public static void main(String[] args) throws Exception{
		// TODO 自动生成的方法存根
		//建立DocumentBuilderFactory
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();	
		//建立DocumentBuilder
		DocumentBuilder builder = factory.newDocumentBuilder();
		//定义Document接口对象,通过DocumentBuilder类进行DOM树的转换操作
		Document doc = null;
		doc = builder.newDocument();

		//建立各个操作节点
		Element addresslist = doc.createElement("addresslist");
		Element linkman = doc.createElement("linkman");
		Element name = doc.createElement("name");
		Element email = doc.createElement("email");
		//设置节点的文本内容,即为每一个节点添加文本节点
		name.appendChild(doc.createTextNode("王五"));
		email.appendChild(doc.createTextNode("www.soho.com"));
		//设置节点关系
		linkman.appendChild(name);					//子节点
		linkman.appendChild(email);					//子节点
		addresslist.appendChild(linkman);		//子节点
		doc.appendChild(addresslist);				//文档上保存节点
		//输出文档到文件中
		TransformerFactory tf = TransformerFactory.newInstance();
		Transformer t = null;
		try{
			t = tf.newTransformer();
		}catch(TransformerConfigurationException e1){
			e1.printStackTrace();
		}
		t.setOutputProperty(OutputKeys.ENCODING, "UTF-8");		//设置编码
		DOMSource source = new DOMSource(doc);							//输出文档
		StreamResult result = new StreamResult(new File("/home/common/software/coding/HelloWord/JavaWeb/bin/dom_name_output.xml")) ;
		try{
			t.transform(source, result); 					//输出
		}catch(TransformerException e){
			e.printStackTrace();
		}
	}

}

 

转载于:https://www.cnblogs.com/tonglin0325/p/5342957.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值