收藏信息.xml

<?xml version="1.0" encoding="GB2312" standalone="no"?><PhoneInfo>
<Brand id="0" name="华为">
<Type name="U8650"/>
<Type name="HW123"/>
<Type name="HW321"/>
</Brand>
<Brand id="1" name="苹果">
<Type name="iPhone4"/>
</Brand>
<Brand id="2" name="三星"><type name="s120"/></Brand></PhoneInfo>

解析示例:

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
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.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException; public class ParseXml {
private Document document;
//获取DOM树
public void getDom(){
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
try {
builder = factory.newDocumentBuilder();
document = builder.parse("收藏信息.xml");
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} //遍历XML信息
public void showInfo(){
NodeList nodes = document.getElementsByTagName("Brand");
for(int i=0;i<nodes.getLength();i++){
Node node = nodes.item(i);
Element ele = (Element)node;
String brandName = ele.getAttribute("name");
System.out.println(brandName); NodeList types = ele.getChildNodes();
for(int j=0;j<types.getLength();j++){
Node typeNode = types.item(j);
//如果节点是元素节点时再类型转换
if(typeNode.getNodeType() == Node.ELEMENT_NODE){
Element typeEle = (Element)typeNode;
String typeName = typeEle.getAttribute("name");
System.out.println(typeName);
}
} } } //保存XML
public void saveXml(String path){
TransformerFactory factory = TransformerFactory.newInstance();
try {
//获取解析器
Transformer transformer = factory.newTransformer();
//指定特定的输出格式
transformer.setOutputProperty(OutputKeys.ENCODING, "GB2312");
//源
DOMSource source = new DOMSource(document);
//目标
StreamResult result = new StreamResult(new FileOutputStream(path));
//解析
transformer.transform(source, result); } catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
} } //向XML添加节点
public void addEle(){
Element Brand = document.createElement("Brand");
Brand.setAttribute("name", "三星");
Element type = document.createElement("type");
type.setAttribute("name", "s120");
Brand.appendChild(type);
document.getElementsByTagName("PhoneInfo").item(0).appendChild(Brand);
saveXml("收藏信息.xml");
} //修改XML元素,为每个Brand节点添加一个ID属性,分别为0,1,2
public void updateEle(){
NodeList brand = document.getElementsByTagName("Brand");
for(int i=0;i<brand.getLength();i++){
Node node = brand.item(i);
Element ele = (Element)node;
ele.setAttribute("id", i+"");
}
saveXml("收藏信息.xml");
} //删除手机品牌为华为的相关元素
public void deleteEle(){
NodeList brand = document.getElementsByTagName("Brand");
for(int i=0;i<brand.getLength();i++){
Node node = brand.item(i);
Element brandEle = (Element)node;
if(brandEle.getAttribute("name").equals("华为")){
brandEle.getParentNode().removeChild(brandEle);
}
}
saveXml("收藏信息.xml");
} public static void main(String[] args) {
ParseXml px = new ParseXml();
px.getDom();
px.showInfo();
// px.saveXml("wjb.xml");
// px.addEle();
px.updateEle();
px.deleteEle();
} }

DOM解析示例的更多相关文章

  1. dom4j解析示例

    收藏信息.xml <?xml version="1.0" encoding="GB2312" standalone="no"?> ...

  2. PHP Simple HTML DOM解析器

    一直以来使用php解析html文档树都是一个难题.Simple HTML DOM parser 帮我们很好地解决了使用 php html 解析 问题.可以通过这个php类来解析html文档,对其中的h ...

  3. JavaEE XML DOM解析之DOM4J

    DOM解析之DOM4J @author ixenos DOM4J常用API 读取xml文档: Document doc = new SAXReader().read("xml文件" ...

  4. JavaEE XML DOM解析

    DOM解析XML @author ixenos XML解析方式(原理) a)     DOM 解析树 b)     SAX  流事件 DOM解析对应主流工具 i.          DOM(官方) i ...

  5. Java XML DOM解析(xPath)

    (一) XML概念 在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等.它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的 ...

  6. PHP Simple HTML DOM解析器使用入门

    http://www.cnphp.info/php-simple-html-dom-parser-intro.html 一直以来使用php解析html文档树都是一个难题.Simple HTML DOM ...

  7. 用DOM解析XML ,用xpath快速查询XML节点

    XPath是一种快速查询xml节点和属性的一种语言,Xpath和xml的关系就像是sql语句和数据库的关系.用sql语句可以从数据库中快速查询出东西同样的用xPath也可以快速的从xml中查询出东西. ...

  8. java拾遗1----XML解析(一) DOM解析

    XML解析技术主要有三种: (1)DOM(Document Object Model)文档对象模型:是 W3C 组织推荐的解析XML 的一种方式,即官方的XML解析技术. (2)SAX(Simple ...

  9. XML解析(一) DOM解析

    XML解析技术主要有三种: (1)DOM(Document Object Model)文档对象模型:是 W3C 组织推荐的解析XML 的一种方式,即官方的XML解析技术. (2)SAX(Simple ...

随机推荐

  1. 耿丹CS16-2班第四次作业汇总

    Deadline: 2016-10-13 12:00 作业内容 实验3-1 分别使用while循环.do while循环.for循环求1+2+3+ --+100. 实验3-2 分别使用while循环. ...

  2. 网站底部版权信息区(bootstrap)

    bootstrap的强大功能毋庸置疑.所以,网站底部版权信息区可以用bootstrap的“栅格系统”完成. 下面是一个未经处理的底部版权信息区的样式: <div class="cont ...

  3. Code First 迁移,及迁移错误

    迁移错误: 今天在使用EF6 Code First时,出现如下错误,折腾了老半天.分享一下,帮后面的兄弟少走弯路. PM> Enable-Migrations Checking if the c ...

  4. IIS性能提升

    1. 调整IIS 7应用程序池队列长度 由原来的默认1000改为65535. IIS Manager > ApplicationPools > Advanced Settings Queu ...

  5. UIStackView before iOS9.0

    我用的Xcode8.1,同伴用的Xcode7.3.1,其上传了几个XIB文件,导致我这边项目一直爆红,爆红信息:"UIStackView before iOS9.0".如图: 网上 ...

  6. UIScrollView设置滑动的距离

    设置好scrollView.width即是控制滑动的距离, scrollView.clipsToBounds = NO;控制是否显示多出的部分(可灵活运用)

  7. centos6.6 安装jdk1.7

    1:在oracle官网下载jdk liunx版本,放入到虚拟机中 2:解压jdk,解压命令 tar -xvzf jdk-7u15-linux-x64.tar.gz 解压完成(如下图) 3:在/usr/ ...

  8. Docker上ubuntu新建用户的网络访问不通问题

    背景 作为一个生命不息,折腾不止的码农.各种操作系统被我不知道搞崩了多少次,无数个夜晚连夜抢修数据,重装系统,那个累啊!! Option 1:备份.数据可以备份,配置可以备份,安装包可以备份.但是安装 ...

  9. html常用标签介绍

    常用标签介绍 文本 最常用的标签可能是<font>了,它用于改变字体,字号,文字颜色. 点击查看效果 <font size="6">6</font&g ...

  10. java中的集合/容器的数据结构

    最近双11在网上买了本 数据结构和算法--java语言实现,正在啃,同时在慕课网上的学习进度来到了集合框架这一类,对于这一块算是刚刚了解,本科的时候数据结构学习的是严蔚敏老师的那本数据结构,代码的实现 ...