打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
传智播客:xml入门以及解析xml文件 - habernate的日志 - 网易博客

传智播客:xml入门以及解析xml文件

java 2009-05-17 10:52:23 阅读15 评论0   字号: 订阅

D:文档 – html 文档 或 xml 文档

        O:对象 – document 对象的属性和方法

        M:模型

        DOM 是针对XML的基于树的API

        DOM:节点(node)的层次。

        DOM 把一个文档表示为一棵家谱树(父,子,兄弟)

        DOM定义了Node的接口以及许多种节点类型来表示XML节点的

  多个方面.

 

l       文档声明:

        在一个完整的XML文档中必须包含一个XML文档声明,该声明必须位于文档的第一行。这个声明表示该文档是一个XML文档,以及遵循的是哪个XML版本的规范。最简单的XML文档声明语法如下:

    <?xml version="1.0" ?>

        可通过在XML文档声明中指定encoding属性来说明该XML文档所使用的字符编码方式:

    <?xml version="1.0" encoding="GB2312" ?>

        encoding属性默认的设置是Unicode编码,如果文档中的字符是以UTF-8或者是UTF-16作为编码,则可以不设置这个属性。

 

l       元素和属性

        XML 文档的主体由元素组成。一个XML元素由一个标记来定义,包括开始和结束标记以及其中的内容

        没有嵌套在其他元素内的元素叫做根元素

        若元素中没有嵌套子元素和数据,这样的元素叫做空元素

        所有的标记都必须有结束标记或者使用空元素的结束说明

        XML 不允许使用标签交叉来破坏文档的结构化层次关系

        XML标记名称区分大小写

        XML标记名称中不能包括空格

        可以为 XML 标签设置属性,XML中的属性也可以随便定义。一个标签可以有多个属性,每个属性都有名称和取值

        XML 中属性值一定要用双引号或单引号引起来

 

l       注释

        XML 文档中可以加入注释来为 XML 文档添加附加信息,注释会被程序忽略。语法如下:

   <!-- 注释信息 -->

        因为 XML 必须作为XML文档的第一行,所以不要把注释放在 XML 声明之前

        XML 中的注释不能嵌套使用

 

 

l       XML中,空格和换行将作为原始内容被处理

 

 

l       CDATA :

        CDATA 区指的是不想被解析程序解析的一片原始数据区,以”<![CDATA[” 开始,以”]]>”结束。

l       特殊字符: XML 中有些特殊字符需要转义字符序列表示其原始字面意义:

比如我们希望在xml中写入如下内容:

l       SELECT * FROM a WHERE a.salary<100.这里的“<”会被xml解析器当作关键字进行解析,这个时候可以把这个<”用<![CDATA[<]]>处理,告诉编译器,不对这里面的内容进行解析

 

下面代码是获得一个xml文档中元素结构

              //1. 得到 xml 文档对应的 Document 对象

              //1.1 创建 SAXReader 对象

              SAXReader saxReader = new SAXReader();

             

              //1.2 调用 SAXReader 对象的 read() 方法读取 xml, 得到 Document 对象

              File file = new File("E:\\java\\090515\\dom4j\\customers.xml");

              Document document = saxReader.read(file);

              //2. 得到 xml 文档的根元素

              Element root = document.getRootElement();

              System.out.println("<" + root.getName() + ">");

              //3. 得到根节点的所有子节点

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

              //4. 3 得到的 List 进行遍历

              for(Element ele : elements){

                     System.out.print("\t<" + ele.getName() + " ");

                     //得到 customer 节点第一个属性对象

                     Attribute attr = ele.attribute(0);

                     System.out.print(attr.getName() + "='" + attr.getValue() + "'");

                     System.out.println(">");

                     //5. 得到每个 customer 节点的所有子节点

                     List<Element> eles = ele.elements();

                     for(Element e : eles){

                            System.out.print("\t\t<" + e.getName() + ">");

                            //6. 得到 customer 每个子节点的值

                            String value = e.getText();

                            System.out.print(value);

                            System.out.println("</" + e.getName() + ">");

                     }

                     System.out.println("\t</" + ele.getName() + ">");

              }

              System.out.println("</" + root.getName() + ">");

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
DOM4J介绍与代码示例
dom4j读取某个元素的某个属性
Dom4J解析xml文档
Dom4j解析和生成XML文档
dom4j解析xml和创建xml文件 递归!!
Dom4j下载及使用Dom4j读写XML简介
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服