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

JavaWeb学习笔记——XML解析的更多相关文章

  1. JavaWeb学习笔记——SAX解析

    import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHa ...

  2. JavaWeb学习笔记——XML和SAX解析区别

  3. JavaWeb学习笔记——XML简介

  4. JavaWeb学习笔记总结 目录篇

    JavaWeb学习笔记一: XML解析 JavaWeb学习笔记二 Http协议和Tomcat服务器 JavaWeb学习笔记三 Servlet JavaWeb学习笔记四 request&resp ...

  5. javaweb学习笔记整理补课

    javaweb学习笔记整理补课 * JavaWeb: * 使用Java语言开发基于互联网的项目 * 软件架构: 1. C/S: Client/Server 客户端/服务器端 * 在用户本地有一个客户端 ...

  6. html学习笔记-XML

    html学习笔记-XML Table of Contents 1. XML简介 2. XML用途 3. XML树结构 4. XML语法 5. XML元素 6. XML属性 7. XML验证 8. XM ...

  7. JavaWeb学习——web.xml文件说明

    JavaWeb学习——web.xml文件说明 摘要:本文主要学习了web.xml文件的作用以及如果配置. 是什么 web.xml文件是用来在JavaWeb项目里面初始化配置信息的,比如:访问的首页.S ...

  8. Javaweb学习笔记——(六)——————xml中jaxp两种解析方式和dom4j运用

    1.xml的scheam约束 dtd的语法:<!ElEMENT 元素名称 约束> **schema符合xml的语法,xml语句 **一个xml中可以有多个schema,多个schema使用 ...

  9. 【Javaweb学习笔记】XML和约束模式

    一.XML语法 xml 可扩展标记语言,w3c组织发布的,用于保存有关系的数据,作为配置文件,描述程序模块之间的关系 xml 文件开头必须包括下面的标签: <?xml version=" ...

随机推荐

  1. “Ceph浅析”系列之五——Ceph的工作原理及流程

    本文将对Ceph的工作原理和若干关键工作流程进行扼要介绍.如前所述,由于Ceph的功能实现本质上依托于RADOS,因而,此处的介绍事实上也是针对RADOS进行.对于上层的部分,特别是RADOS GW和 ...

  2. android 入门笔迹(1)

    环境搭建JDK,JRE,Android SDK,ADT,Eclipse,安卓模拟器AVD xml控制UI界面  Java代码控制UI界面  XML与Java混合控制UI界面  UI:userinter ...

  3. 【POJ 3241】Object Clustering 曼哈顿距离最小生成树

    http://poj.org/problem?id=3241 曼哈顿距离最小生成树模板题. 核心思想是把坐标系转3次,以及以横坐标为第一关键字,纵坐标为第二关键字排序后,从后往前扫.扫完一个点就把它插 ...

  4. Eclipse SVN插件与TortoiseSVN的对应关系及下载链接

    Eclipse SVN 插件与TortoiseSVN对应关系 Eclipse 3.2/Callisto, 3.3/Europa, 3.4/Ganymede, 3.5/Galileo, 3.6/Heli ...

  5. java类生命周期详细解析

    (一)详解java类的生命周期 引言 最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑,笔者打开百度搜了一下相关的问题,看到网上的资料很少有把这个问题讲明白的,主要是因为目前 ...

  6. 管理系统UI: System Bar 详解

    Google原文: http://developer.android.com/training/system-ui/index.html 管理系统UI之一:淡化System Bar(Dimming t ...

  7. js 时间与时间戳的转换

      一:时间转时间戳:javascript获得时间戳的方法有四种,都是通过实例化时间对象 new Date() 来进一步获取当前的时间戳 1.var timestamp1 = Date.parse(n ...

  8. Too many connections解决方案

    原因:  my.ini 中设定的并发连接数太少或者系统繁忙导致连接数被占满. 连接数超过了 MySQL 设置的值,与 max_connections 和 wait_timeout  都有关. wait ...

  9. SQL Server附加数据库时失败,提示:“未重新生成日志,因为有不止一个日志文件”

    这个只能是试一下的方法,但不一定能成功,可以尝试如下几个方法: 1.登录远程桌面,然后以.登录SQL Server,并以Windows身份登录,然后再附加数据库时把日志文件删除. 2.试下这个脚本: ...

  10. Webpack打包工具实时更新操作(启用观察者模式)

    可能存在这样的问题,每次修改完js/css文件之后,都要进行手动打包一下,浏览器上刷新一下. 那么我一般这样做: 1.安装Hbuilder,并启用边编辑边看的模式(其实这个是默认的). 2.启动Web ...