`
newjueqi
  • 浏览: 12061 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

XML学习笔记(附上思维导图)

    博客分类:
  • java
阅读更多

【文章标题】XML学习笔记(附上思维导图)

【文章作者】曾健生

【作者邮箱】zengjiansheng1@126.com

【作者QQ190678908

【作者博客】http://blog.csdn.net/newjueqi

                     http://newjueqi.iteye.com/

【编程环境】JDK 1.6.0_01

【作者声明】欢迎转载文章,但转载请保留文章的完整性以及注明文章的出处。

 

*******************************************************************************

 

       XML现在被广泛应用于WEB开发,属性它的基本概念和基本操作(增,删,改,查)等具有重要的意义。

 

1. 了解什么是 格式良好 xml 文档. 知道 xml 的基本语法

 a,文档声明必须在第一行

<?xml version="1.0" encoding="UTF-8"?>

 bXML标记名称区分大小写,标记名称不能包含空格。

c, XML空元素的表示:

    1.<student></student>

    2.<student/>

d,  XML不允许标签交叉,如下是不允许的:

    <customer>

          <name >jim

          <address>Beijing</name></address>

    </customer>

 eXML属性值要用单引号或双引号包含起来

 

本文所用的XML:

  <?xml version="1.0" encoding="UTF-8" ?>

- <customers>

- <customer id="001">

  <name>Tom</name>

  <age>13</age>

  <email>tom@sina.com</email>

  </customer>

- <customer id="002">

  <name>Jerry</name>

  <age>23</age>

  <email>jerry@sina.com</email>

  </customer>

- <customer id="003">

  <name>Bob</name>

  <age>33</age>

  <email>jerry@sina.com</email>

  </customer>

  </customers>

 

 

2. 利用 Dom4j 读取 xml 文档.

       2.1  得到 xml 文档代表的 Document 对象

 

//1.创建一个SAXReader对象

       SAXReader reader=new SAXReader();

      

       //创建一个XML文件的输入流

       File f=new File("E:\\workspace\\dom4j\\customers.xml");

      

       //创建一个文档对象

       Document doc=reader.read( f );

 

       2.2  熟悉 Element, Attribute, Node 等基本 API

//获取根节点

       Element root=doc.getRootElement();

      

       //获取根节点下的所有子节点的集合

       List<Element> e1 =root.elements();

      

       for( Element ele: e1 )

       {

          

           /*

            通过子节点的方法

            */

           //获取属性:ID值

           Attribute attr=ele.attribute(0);

           System.out.println( attr.getName()+" "+attr.getText());

          

           //获取子节点的名称

           System.out.println( ele.getName());

          

           //获取子节点的值

           System.out.println( ele.getText());      

          

           /*

            * 通过 Attribute获取值

            */

           System.out.println( ele.attributeValue("id"));//获取属性

           System.out.println( ele.elementText("name"));//获取子节点的姓名值

           System.out.println( ele.elementText("age"));//获取子节点的年龄值

       }

 

       2.3 使用 XPath 查找指定的节点

 

几个常用的:

 

Nodename:选取此节点的所有子节点

/:从根节点选取

//:从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置

@:选取属性

//title[@lang='eng']:选取所有 title 元素,且这些元素拥有值为 eng lang 属性

/bookstore/book[price>35.00]:选取所有 bookstore 元素的 book 元素,且其中的 price 元素的值须大于 35.00

 

/*

            * 使用XPath获取

            */

           //获取name的值为"Tom"的节点

           //Node node = doc.selectSingleNode( "//customer[name='"+"Tom"+"']" );

          

           //获取id的值为"001"的节点

           Node node = doc.selectSingleNode( "//customer[@id='"+"002"+"']" );

           Element el=(Element) node;

           System.out.println( el.attributeValue("id"));

 

 

3. XML文件的创建,增删操作

1XML文件的创建

public static void main(String[] args) throws IOException {

              // TODO Auto-generated method stub

              //1. 创建一个 Document 对象

              Document document = null;

              document = DocumentHelper.createDocument();

             

              //2. Document 对象下添加一个根节点: students

              Element root = document.addElement("students");

             

              //3. students 节点下添加 student 节点

              Element stuEle_1 = root.addElement("student");

             

              //4. student 节点下添加 name, age 子节点

              stuEle_1.addAttribute("id", "001");

              stuEle_1.addElement("name").setText("Mike");

              stuEle_1.addElement("age").setText("23");

             

              Element stuEle_2 = root.addElement("student");

              stuEle_2.addAttribute("id", "001");

              stuEle_2.addElement("name").setText("Rose");

              stuEle_2.addElement("age").setText("22");

             

              //5. 1 创建好的 Document 对象, 写到 students.xml 文件中

              XMLWriter xmlWriter = null;

              FileWriter fileWriter = new FileWriter("students.xml");

              OutputFormat format = OutputFormat.createPrettyPrint();

              xmlWriter = new XMLWriter(fileWriter, format);

              xmlWriter.write(document);

             

              xmlWriter.close();

       }

}

 

生成的XML如下:

  <?xml version="1.0" encoding="UTF-8" ?>

- <Students>

- <student id="002">

  <name>Tom</name>

  <age>23</age>

  </student>

- <student>

  <name>Jim</name>

  <age>24</age>

  </student>

  </Students>

 

 

2)增加子节点

A.获取新创建的子节点信息文本信息。

B.通过SAXReaderread( File f )方法获取XML文档的document对象。

C.注意,要现获取根节点,然后在根节点下按层次地用addElement()和addAttribute()增加子节点和属性。

D.用XMLWriter.write(Document doc)方法把修改后的Document对象持久化到XML文件中

E.关闭XMLWriter流。

 

3)删除子节点

A.获取XML文档的document对象

B.获取要删除子节点的对象,可使用Xpath方便地获取

C.获取要删除子节点的父节点

D.从document对象中用父节点. remove(子节点)的方法删除子节点

font-family: Times New Roman

  • 大小: 53.1 KB
分享到:
评论

相关推荐

    spring xml配置文件思维导图

    自己总结的spring xml配置的思维导图,包括了spring的基础配置

    JavaWeb每日总结思维导图

    本资源免费下载供大家阅读使用,全程知识点,使用思维导图的方式对知识进行梳理,包含各技术名词的概念及代码,内容清晰有序,适合初学者学习使用——每日一个 ,亦可以作为开发老鸟回顾知识的笔记。选择下载该内容...

    网页思维导图实现

    己实现XML配置图形。XML文件有详细注释

    MyBatis思维导图.xmind

    2019年最新最详细的MyBatis框架思维导图。 mybatis 是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。...

    免费在线思维导图工具mindv说明书

    现在越来越多的人开始学习思维导图,学习这种21世纪的思维方式,引爆自己的灵感,提升自己的创造力,来改变自己,改变一个企业,甚至一个国家的竞争力。 MindV使用跨浏览器、跨平台的silverlight 4 技术开发,可以...

    Android知识体系思维导图

    Android知识体系思维导图 1、androidmanifest.xml 2、UI 3、多线程 4、进程 5、工具类 6、传感器 7、SystemManager 8、Activity 9、Service 10、BroadcastReceiver 11、ContentProvider 12、Intent

    免费思维导图工具mindv下载

    MindV还是一款新的文档工具,是Word,PPT,Excel之外另一种记录文档的工具。可以记录会议要点,各种提纲,读书笔记,整理思路,各种组织结构图等;文件格式符合Open XML规范;...Mindv还是制作思维导图的首选工具。

    网络安全思维导图

    信息系统等级保护实施指南思维导图.jpg 逆向漏洞 MPDRR模型.jpg Windows_Hacker学习路线图.jpg cheat sheet reverse v5.png 计算机病毒.png 安全人员技术要求.jpg 木马攻击与防御技术.png 欺骗攻击与防御...

    史上最全B2C网站运营策划思维导图

    史上最全B2C网站运营策划思维导图

    反射基础思维导图

    内含反射的定义,反射的价值,,反射使用的方法以及xml文件的定义,价值,特点详解

    webService学习资料

    webService学习资料,内含有思维导图两张,webservice资料整理,欢饮下载。

    CSS和CSS3思维导图(xmind版)

    CSS 是用来表现HTML或XML的标记语言。 CSS 是由W3C的CSS工作组发布推荐和维护的. CSS 是编程入门人员的必修课,运用CSS样式可以让页面变得美观。 CSS语法由三部分构成:选择器、属性和值: selector {property: ...

    spring框架技术+第2天+xmind思维导图

    spring框架技术+第2天+xmind思维导图:生命周期,介绍simple project,打印出构造方法User()中的输出语句。打印出 my_init()方法中的输出语句,该方法要在xml文件的bean那里加入 init-method="my_init"。实现接口...

    遥感数字图像处理课程思维导图xmind

    遥感数字图像处理课程各章节思维导图xml版本,可进行思维导图的修改。主页【遥感数字图像处理】专栏中有对应各章节的详细课程学习笔记,及专栏最后有各章节博文链接汇总和该思维导图预览图,可以先自行查看。

    tomcat的思维导图

    新手实用.http以及Tomcat的的定义,使用,价值,以及特点详解

    Webservice_思维导图

    Webservice_思维导图

    Java Spring 源码解析 Xmind 思维导图

    Java Spring 源码解析 Xmind 思维导图。 Spring源码解析Xmind思维导图,阅读spring源码之后整理的。包括源码流程、时序图、bean生命周期等等总结 spring java

    免费在线思维导图工具mindv使用说明书

    现在越来越多的人开始学习思维导图,学习这种21世纪的思维方式,引爆自己的灵感,提升自己的创造力,来改变自己,改变一个企业,甚至一个国家的竞争力。 MindV使用跨浏览器、跨平台的silverlight 4 技术开发,可以...

    Dom4j学习教程+API+xml实用大全+xml学习笔记+htc

    识货就下,先睹为快! Dom4j学习教程+API htc.doc XML实用大全.doc xml学习笔记.doc xml学习笔记.doc

    mysql-5.5.27-64位和32位(内含安装图解,mysql学习文档,mysql思维导图)

    我自己整理收藏,现在提供给大家使用,包括mysql安装包,mysql学习文档,mysql思维导图

Global site tag (gtag.js) - Google Analytics