xml简介和dom4j解析xml重要方法

1.xml(可扩展标记语言)的概述
    与html的区别:
        xml: 描述数据,用于存储和传输数据。标签都是自定义的
        html:显示数据,标签都是预定义的

    注意事项:
    文档声明必须在第一行
    只有一个根标签
    元素只能包裹嵌套,不能交叉嵌套
    注释不能嵌套
    标签命名规则:字母、数字、下划线、减号、英文句点组成,严格区分大小写
    属性值要用单引号或双引号

2.约束文档
    1.DTD(Document tyte definition)--->约束xml的书写规范
        a DTD文件的书写
            <?xml version="1.0" encoding="UTF-8"?>   //文档声明
            <!ELEMENT 书架 (书+)>
            <!ELEMENT 书(书名,作者,售价)>
            <!ELEMENT 书名(#PCDATA)>
            <!ELEMENT 作者(#PCDATA)>
            <!ELEMENT 售价(#PCDATA)>
        b DTD文件的引入
            <?xml version="1.0" encoding="UTF-8"?>
            <!DOCTYPE 书架 SYSTEM "book.dtd">    //可以在xml文件创建时自动生成
            <书架>
                <书>
                    <书名></书名>
                    <作者></作者>
                    <售价></售价>
                </书>
            </书架>

    2.Schema的概述:--->符合xml语法,拓展名.xsd
        对比 Schema 和 DTD
        a.XML Schema符合XML语法结构。
        b.DOM、SAX等XML API很容易解析出XML Schema文档中的内容。
        c.XML Schema对名称空间支持得非常好。
        d.XML Schema比XML DTD支持更多的数据类型,并支持用户自定义新的数据类型。
        e.XML Schema定义约束的能力非常强大,可以对XML实例文档作出细致的语义限制。
        约束文档:    <?xml version="1.0" encoding="UTF-8"?>
                    <xs:schema xmlns:xs=‘http://www.w3.org/2001/XMLSchema‘   //标准名称空间  xmlns意思为xml名称空间
                        targetNamespace=‘http://www.itheima.com‘>            //自定义名称空间
                        <xs:element name=‘书架‘>                             //约束根标签
                            <xs:complexType>                                //表示根标签为复杂类型,可以有子标签
                                <xs:sequence maxOccurs=‘unbounded‘>            //表示子元素有顺序  属性为unbounded表示子标签的数量不限
                                    <xs:element name=‘书‘>
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name=‘书名‘ type=‘xs:string‘ />
                                                <xs:element name=‘作者‘ type=‘xs:string‘ />
                                                <xs:element name=‘售价‘ type=‘xs:string‘ />
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:schema>

        引入约束文档:
                    <?xml version="1.0" encoding="UTF-8"?>
                        <itheima:书架 xmlns:itheima="http://www.itheima.com"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xsi:schemaLocation="http://www.itheima.com book.xsd">

                        <书>
                            <书名>书名</书名>
                            <作者>作者</作者>
                            <售价>售价</售价>
                        </书>

                    </itheima:书架>

3.XML的解析
        解析的含义: 采用Java代码操作(增,删,改,查)我们的XML文件里面的内容.
        常见的解析方式:
            DOM:把所有的节点数据,全部加载到内存当中.解析方便,容易出现内存溢出
            SAX:逐个节点进行解析,不会出现内存溢出,解析较为繁琐.
        提供的解析操作:
            JAXP:sun公司提供
            DOM4j:开源框架,需要导入jar包

4.Dom4j常用的方法:
    a需要导入jar包

    b创建对应的document对象----> dom4j-1.6.1---docs---index.html---quick start---Creating a new XML document
        SAXReader reader = new SAXReader();  //获取解析器对象
        Document document = reader.read(url);  //通过解析器获取文件对象,参数url为xml的文件路径的字符串
        重要方法:Element getRootElement() //通过文件对象,获取根标签对象
    Element
        创建元素对象的方式:
            DocumentHelper.CreatElement(String name);  //创建一个新的元素对象,参数为要创建的对象的名称
        常用方法
            获取方法:
                获取文本/属性:
                    String  attributeValue(String name):     //根据指定的属性名称获取其对应的值
                    String  getText() :                      //获取当前元素对象的文本
                    String  elementText(String name)           //获取名称为name的子元素中的文本
                获取子元素对象:
                    Element element(String name):            //获取元素名称为name的子元素对象,如果有重复,返回第一个
                    List elements() :                        //获取所有的子元素
                    List elements(String name):            //获取元素名称为name的所有子元素集合
                获取父元素对象
                    Element getParent();

            添加元素
                add(Element e)       //添加子元素

            修改文本、属性:
                void setText(String text):              //设置当前元素对象的文本
                Element addAttribute(String name,String value): //根据指定的属性名称和值进行添加或者修改 参数为属性名和属性值

            删除方法:
                remove(Element e);    //删除子元素,参数为元素对象

        将文件写入XML文件中
            //获取格式化对象
            OutputFormat format=OutputFormat.createCompactFormat();
            //获取字节流
            FileOutputStream fos=new FileOutputStream(path);
            //获取写xml对象
            XMLWriter xw=new XMLWriter(fos,format);
            //写文件
            xw.write(d);   //参数为文件对象

原文地址:https://www.cnblogs.com/liuxuelin/p/10140684.html

时间: 2024-10-29 10:46:12

xml简介和dom4j解析xml重要方法的相关文章

java中的xml简介与DOM解析xml

1. xml简介 XML:指可扩展标记语言, Extensible Markup Language:类似HTML.XML的设计宗旨是传输数据,而非显示数据. 一个xml文档实例: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <company name="Tencent" address="深圳市南山区"> 3 <department deptNo=&quo

dom4j解析Xml,dom4j解析带命名空间的Xml内容,dom4j解析xml为实体类

首先引入maven: <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</arti

【java项目实战】dom4j解析xml文件,连接Oracle数据库

简介 dom4j是由dom4j.org出品的一个开源XML解析包.这句话太官方,我们还是看一下官方给出的解释.如下图: dom4j是一个易于使用的.开源的,用于解析XML,XPath和XSLT等语言的库.它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP等编程标准. 特点 dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用的特点,同时它也是一个开放源代码的软件.如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,例

XML学习笔记(五):使用 jdom和dom4j 解析XML

XML解析的详细分析与jaxp解析XML详见:XML学习笔记(四):使用 DOM和SAX 解析XML 一.JDom 1.创建XML文件: 1)Document类即代表整个XML文档,把生成的 Document 利用 XMLOutputter 类输出即可. 2)映射关系:元素:Element:属性:Attribute:注解:Comment:文本信息:Text: 3)注意:addContent()是追加,setContent()会覆盖. /** * 创建XML * * @throws IOExcep

【收藏用】--切勿转载JAVA 使用Dom4j 解析XML

原帖地址 : http://blog.csdn.NET/yyywyr/article/details/38359049 解析XML的方式有很多,本文介绍使用dom4j解析xml. 1.环境准备 (1)下载dom4j-1.6.1.jar (2)下载junit-4.10.jar 2.温馨提示 解析XML过程是通过获取Document对象,然后继续获取各个节点以及属性等操作,因此获取Document对象是第一步,大体说来,有三种方式: (1)自己创建Document对象   Document docu

转:在java中使用dom4j解析xml

在java中使用dom4j解析xml 虽然Java中已经有了Dom和Sax这两种标准解析方式 但其操作起来并不轻松,对于我这么一个初学者来说,其中部分代码是活生生的恶心 为此,伟大的第三方开发组开发出了Jdom和Dom4j等工具 鉴于目前的趋势,我们这里来讲讲Dom4j的基本用法,不涉及递归等复杂操作 Dom4j的用法很多,官网上的示例有那么点儿晦涩,这里就不写了 首先我们需要出创建一个xml文档,然后才能对其解析 xml文档: <?xml version="1.0" encod

使用DOM4J解析XMl文件与读取XML文件

XML文件 1 <?xml version="1.0" encoding="UTF-8"?> 2 <bookstore> 3 <book id="1"> 4 <name>冰与火之歌</name> 5 <author>乔治马丁</author> 6 <year>2014</year> 7 <price>89</price&g

java使用dom4j解析xml

目标:将指定XML进行解析,以键=值的方式返回指定节点下的数据 所需要的jar包:dom4j1.6.1.jar.jaxen-1.1.jar <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://s

使用dom4j解析XML文档

dom4j的包开源包,不属于JDK里面,在myeclipse中要单独导入在项目中,这里不累赘了 做这个过程,很慢,因为很多方法没用过不熟悉,自己得去查帮助文档,而且还得去试,因为没有中文版,英文翻译不准确,也会导致多个同名的方法理解和用法不同 XML: <?xml version="1.0" encoding="utf-8"?> <students> <student age="25"> <name>