xml解析 java_JavaWeb学习笔记——XML解析

d7f72c6e7fea7e4d2fc36c0e52afb2d8.png

DOM解析操作

4b49f1f05593d997474185600badd6bf.png

eddd2d2ce492308f2f8a535e0eb2a635.png

b537b89deb6507e39dcf7f4810e841c3.png

94fc3d381565bec3e4776cc169d18315.png

只在跟节点下面建立一个子节点

张三

www.baidu.com

李四

www.sina.com

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

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文件

6cad28418e23c53fb555bd3c8033a33f.png

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();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值