java_web学习(3)XML基础

XML 技术概述

XML是一种通用的数据交换格式。为实现计算机之间的文档交换而设计的文档内容编写规范,语法与HTML相似;XML的作用:统一信息的结构,实现不同系统之间的相互通信;目前许多系统的配置文件都使用XML格式;配置文件就是记录应用程序的配置信息的文件.

XML 文档结构

XML 是一种标记语言,通过使用标记来说明文本的意义和所代表的信息;XML 没有固定的标记,允许用户随便发明和创建自己的标记;XML 文档是树形结构的.

DOM<Document Object Model(文档对象模型)>

D:文档 – html 文档 或 xml 文档;O:对象 – document 对象的属性和方法;M:模型

DOM 是针对XML的基于树的API。DOM树:节点(node)的层次.DOM 把一个文档表示为一棵家谱树(父,子,兄弟);DOM定义了Node的接口以及许多种节点类型来表示XML节点的多个方面.

节点及其类型: 节点(node):来源于网络理论,代表网络中的一个连接点,网络是由节点构成的集合.

         

XML的基本语法

文档声明:

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

    <?xml version="1.0" ?>
//可通过在XML文档声明中指定encoding属性来说明该XML文档所使用的字符编码方式:
    <?xml version="1.0" encoding="GB2312" ?>
//encoding属性默认的设置是Unicode编码,如果文档中的字符是以UTF-8或者是UTF-16作为编码,则可以不设置这个属性。

元素和属性:

1)XML 文档的主体由元素组成。一个XML元素由一个标记来定义,包括开始和结束标记以及其中的内容;2)没有嵌套在其他元素内的元素叫做根元素;3)若元素中没有嵌套子元素和数据,这样的元素叫做空元素;4)所有的标记都必须有结束标记或者使用空元素的结束说明;5)XML 中不允许使用标签交叉来破坏文档的结构化层次关系;6)XML标记名称区分大小写;7)XML标记名称中不能包括空格;8)可以为 XML 标签设置属性,XML中的属性也可以随便定义,一个标签可以有多个属性,每个属性都有名称和取值;9)XML 中属性值一定要用双引号或单引号引起来.

注释:

在 XML 文档中可以加入注释来为 XML 文档添加附加信息,注释会被程序忽略。语法如下:<!-- 注释信息 -->。因为 XML 声明必须作为XML文档的第一行,所以不要把注释放在 XML 声明之前,XML 中的注释不能嵌套使用。

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

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

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

XML 的约束模式

在有些情况下,XML 文档仅是格式良好还不够,其中的内容还必须满足某些条件的约束限制。在这些条件下,需要定义一套规则来对 XML 文档中的内容作出限制,这套定义的规则就是 XML 文档的约束模式。约束模式定义了 XML 文档中允许出现的元素名,元素中的属性,内容的类型,以及元素之间的嵌套关系和出现顺序。XML 约束模式语言: 用于定义 XML 约束模式的语法规则的语言,具有代表意义的 XML 约束模式语言:  XML DTD 和 XML Schema

1)在 XML 文档中引入外部 DTD 文件:

DTD(Document Type Definition):

在XML文档中引入外部DTD文件

XML文档通过使用 DOCTYPE 声明语句(文档类型定义语句)来指明它所遵循的DTD文件,DOCTYPE 声明语句紧跟在XML文档声明语句后面,有两种格式:

文档类型名称:可以由 XML 文档编写者自己定义,一个通用的习惯是使用 XML 文档的根元素名称作为文档类型名称

(1)<!DOCTYPE 文档类型名称 SYSTEM "DTD文件的URL">

例如:<!DOCTYPE 书架 SYSTEM "book.dtd">

SYSTEM(第一种格式):表明 XML 文件所遵循的是一个本地或组织内部所编写和使用的的 DTD 文件

DTD 文件的URL:指定该 DTD 文件的所在的位置,需要用双引号括起来,对于使用 SYSTEM 属性的的 DOCTYPE 语句,” DTD 文件的URL” 可以是 Internet 上的一个绝对 URL,也可以是一个本地文件的相对路径.

(2)<!DOCTYPE 文档类型名称 PUBLIC "DTD名称" "DTD文件的URL">

例如:

<!DOCTYPE web-app PUBLIC

  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

  "http://java.sun.com/dtd/web-app_2_3.dtd">

PUBLIC(第二种格式):表明该 XML 文件所遵循的是一个由权威机构制定的,公开提供的给特定行业或公众使用的 DTD 文件

DTD名称:用于指定该 DTD 文件的标识名称,只在使用关键字 PUBLIC 的 DOCTYPE 声明语句中出现。DTD 标识名称需要使用双引号括起来。应符合一些标准的规定。

DTD 文件的URL:指定该 DTD 文件的所在的位置,需要用双引号括起来,对于使用 PUBLIC 属性的的 DOCTYPE 语句,” DTD 文件的URL” 指定该 DTD 文件在 Internet 上的绝对 URL,对于一些已经制订成为了行业标准的DTD文件,一些相应的解释器程序可能已经将它们内嵌进去,所以在解析时并不一定要到从指定的URL上进行下载。

在XML文档中直接嵌入DTD定义语句

//在XML文档中直接嵌入DTD定义语句:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE 根元素名 [
    DTD定义语句
    ……
]>

//引入外部DTD文件的同时加入DTD定义语句:
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd"
[
    !ENTITY copyright SYSTEM "http://www.it315.org/copyright.xml"
]>
//在XML文档中直接嵌入DTD的例子
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE 书架 [
    <!ELEMENT 书架 (书+)>
    <!ELEMENT 书 (书名,作者,售价)>
    <!ELEMENT 书名 (#PCDATA)>
    <!ELEMENT 作者 (#PCDATA)>
    <!ELEMENT 售价 (#PCDATA)>
]>
<书架>
    <书>
        <书名>Java就业培训教程</书名>
        <作者>张孝祥</作者>
        <售价>39.00元</售价>
    </书>
    ...
</书架>

DTD 的语法细节:

1)元素定义

元素是 XML 文档的基本组成部分,在 XML 文档中使用的每个元素及其属性都要在 DTD 文件中进行定义.

语法格式:<!ELEMENT 元素名称 使用规则>

举例:

  <!ELEMENT 书 (书名,作者,售价)>
  <!ELEMENT 书名 (#PCDATA)>

元素的使用规则:定义了元素中包含的组成部分,以及每种组成成分出现的次数,次序,还可以是某些成分进行某种关系组合后出现的次数。

一个 XML 元素可以有如下一些形式:

1)(#PCDATA)--parsed character data的简写:表示元素中嵌套的内容是普通文本字符串。

2)用一对 () 将元素中要嵌套的一组子元素括起来:(书名,作者,售价)

3)EMPTY:元素中不包含任何子元素和普通文本字符串,这种情况用于定义 XML 文件中的空元素:例如,<!ELEMENT HR EMPTY>定义的元素形式为<HR />

4)ANY:表示元素中可以有任何类型的子元素和普通文本字符串,以及它们的组合,还可以不包含任何内容。

DTD使用与XML文档同样的注释方式 :<!-- 注释内容 -->

每条元素定义语句的顺序是无关紧要的;具有不同用途的元素不能使用相同的元素名;一个元素的各个组成成份之间可以有各种关系;元素的使用规则中的各个组成成分用空白符分隔,他们的出现顺序没有严格要求:<!ELEMENT MYFILE (TITLE AUTHOR EMAIL)>;用逗号 , 分隔,它们在 XML 文档中的出现顺序必须与它们的排列顺序一致:<!ELEMENT MYFILE (TITLE,AUTHOR,EMAIL)>;用竖杠 | 分隔,它们在 XML 文档中只能出现它们之中的任何一个:<!ELEMENT MYFILE (TITLE|AUTHOR|EMAIL)>。在元素的使用规则中可以通过正则表达式定义子元素出现的次数:+: 一次或多次 (书+)、 ?: 0 次或一次 (书?)、 *: 任意次(书*)、 不使用:只能出现一次 (书);一对圆括号( )可用于将括在其中的内容组合成一个可统一操作的分组,分组中可以嵌套更小的分组。<!ELEMENT MYFILE((TITLE*, AUTHOR?, EMAIL)* | COMMENT)>

2)属性定义

//XML 文档中可以为元素设置属性
//语法格式:
    <!ATTLIST 元素名
        属性名1 属性类型 设置说明
        属性名2 属性类型 设置说明
        ……
    >
//举例:
<!ATTLIST 商品
    类别 CDATA #REQUIRED
    颜色 CDATA #IMPLIED
>
//应用:
    <商品 类别="服装" 颜色="黄色">…</商品>
    <商品 类别="服装">…</商品> 

设置说明:1>#REQUIRED:必须设置该属性;2>#IMPLIED:可以设置也可以不设置;3>#FIXED:说明该属性的取值固定为一个默认值,在 XML 文件中不能为该属性设置其它值,但需要为该属性提供这个默认值(直接使用默认值:在 XML 中可以设置该值也可以不设置该属性值,若没设置则使用默认值)。

CDATA//表示属性值为普通文本字符串。
ENUMERATED //属性的类型可以是一组取值的列表,在 XML 文件中设置的属性值只能是这个列表中的某个值
<?xml version = "1.0" encoding="GB2312" standalone="yes"?>
<!DOCTYPE 购物篮 [
    <!ELEMENT 肉 EMPTY>
    <!ATTLIST 肉 品种 ( 鸡肉 | 牛肉 | 猪肉 | 鱼肉 ) "鸡肉">
]>
<购物篮>
    <肉 品种="鱼肉"/>
    <肉 品种="牛肉"/>
    <肉/>
</购物篮>

//表示属性的设置值将用于唯一标识一个 XML 文件中的某个元素,这种 ID 类型的属性通常由 XML 文件的解析处理程序或脚本语言使用;ID 属性的值只能由字母,数字或下划线开始,不能出现空白字符
ID

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

<!DOCTYPE 联系人列表[
    <!ELEMENT 联系人列表 ANY>
    <!ELEMENT 联系人(姓名,EMAIL)>
    <!ELEMENT 姓名(#PCDATA)>
    <!ELEMENT EMAIL(#PCDATA)>
    <!ATTLIST 联系人 编号 ID #REQUIRED>
]>

<联系人列表>
    <联系人 编号="1">
        <姓名>张三</姓名>
        <EMAIL>[email protected]</EMAIL>
     </联系人>
    <联系人 编号="2">
        <姓名>李四</姓名>
        <EMAIL>[email protected]</EMAIL>
    </联系人>
</联系人列表>

IDREF和IDREFS
NMTOKEN和NMTOKENS
NOTATION
ENTITY和ENTITYS  

3)实体定义

实体的根本作用是为一段文本内容创建一个别名,以后在XML文档中就可以多次引用这个别名,XML解析器程序将把XML文档中出现的别名引用转变成其所对应的文本内容。在DTD定义中,一条<!ENTITY …>语句用于定义一个实体。实体可分为两种类型:引用实体和参数实体。

//引用实体主要在 XML 文档中被应用
//语法格式:
<!ENTITY 实体名称 “实体内容” >:直接转变成实体内容
<!ENTITY 实体名称 SYSTEM “外部XML文档的URL” >:被替换成外部 XML 文档中的内容
引用方式:
&实体名称;
举例:
    <!ENTITY copyright “I am a programmer">
     ……
     &copyright;

//参数实体被 DTD 文件自身使用
//语法格式:
   <!ENTITY % 实体名称 "实体内容" >
引用方式:
%实体名称;
举例1:
     <!ENTITY % TAG_NAMES "姓名 | EMAIL | 电话 | 地址">

     <!ELEMENT 个人信息 (%TAG_NAMES; | 生日)>
     <!ELEMENT 客户信息 (%TAG_NAMES; | 公司名)>
举例2:
<!ENTITY % common.attributes
    ‘id ID #IMPLIED
     account CDATA #REQUIRED‘
>
...
<!ATTLIST purchaseOrder %common.attributes;>
<!ATTLIST item %common.attributes;>

2)在 XML 文档中引入外部 Schema 文件:

XML Schema

XML Schema 也是一种用于定义和描述 XML 文档结构与内容的模式语言,其出现是为了克服 DTD 的局限性

XML Schema VS DTD:

1>XML Schema符合XML语法结构;2>DOM、SAX等XML API很容易解析出XML Schema文档中的内容;3>XML Schema则采用与XML文档同样的合法性验证机制;4>XML Schema对名称空间支持得非常好;5>XML Schema比XML DTD支持更多的数据类型,并支持用户自定义新的数据类型;6>XML Schema定义约束的能力非常强大,可以对XML实例文档作出细致的语义限制;7>XML Schema基本上满足了关系模式在数据描述上的需要;8>XML Schema不能像DTD一样定义实体,比DTD更复杂。

Schema文档范例

XML Schema 文件称为模式文档,而采用某个 XML Schema 文档作为约束模式的 XML 文档称为实例文档,XML Schema 模式文档的扩展名通常为 .xsd

文件清单:xmlbook.xsd
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name=‘书架‘ >
        <xs:complexType>
            <xs:sequence maxOccurs=‘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>
文件清单:xmlbook.xml
<?xml version="1.0" encoding="UTF-8"?>
<书架 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="xmlbook.xsd">
    <书>
        <书名>JavaScript网页开发</书名>
        <作者>张孝祥</作者>
        <售价>28.00元</售价>
    </书>
</书架>

名称空间

在不同的约束模式文档中,出现表示不同含义的相同标记名称是完全有可能的。

解决方案:(1)每个约束模式文档被赋以一个唯一的名称空间,每个名称空间都用一个唯一的URI(Uniform Resource Identifier,统一资源标识符)表示。(2)在XML实例文档中为来自不同模式文档的元素增加不同的前缀部分,元素名称前增加的各个前缀名称分别代表各个模式文档的名称空间。

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
        <xs:element name=‘书架‘>
        ...
基本格式:
    xmlns:前缀名称="URI" 
举例:
    < it315:书架 xmlns:it315="http://www.it315.org/xmlbook/schema">
        <it315:书>
        <it315:书名>JavaScript网页开发</it315:书名>
        <it315:作者>张孝祥</it315:作者>
        <it315:售价>28.00元</it315:售价>
        </it315:书>
    <书架>
在任何元素中声明的名称空间,只对该元素及其中嵌套的所有子孙元素有效,声明名称空间的元素自身上也可以使用代表该名称空间的前缀。
QName(Qualified Name,限定名)是指用冒号(:)把前缀与本地部分进行分隔的名称,即被限定在了某个名称空间中的名称。  
默认名称空间
基本格式:
    xmlns="URI" 
举例:
    <书架 xmlns="http://www.it315.org/xmlbook/schema">
        <书>
        <书名>JavaScript网页开发</书名>
        <作者>张孝祥</作者>
        <售价>28.00元</售价>
        </书>
    <书架>

属性的名称空间问题

XML实例文档中通常只需要将元素限定于该模式文档的名称空间中,而不需要将该元素的属性限定于名称空间中。

例子:

<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" 
href="http://example.com/std/defs" parse="xml" /> 

如果属性名称中有一个前缀部分,该属性将被限定在该前缀所指定的名称空间中。如果属性名称中没有前缀部分,那么该属性就不属于任何名称空间。属性不受默认名称空间的影响。

例子:

<x xmlns="http://www.w3.org" xmlns:n1="http://www.w3.org">
        <good a="1" n1:a="2" />
</x>

xml:space和xml:lang属性

前缀名“xml”已经被隐式地绑定到了一个名称空间上,内置属性名称以xml:作为前缀,自定义的属性名不能以xml:作为前缀。

xml:space属性用于设置下游应用程序应该如何处理解析器传递的空格等字符,设置值只能是“default”或“preserve”。

例子:

  <网址 xml:space="preserve">     www.it315.org   </网址>

xml:lang属性用于设置元素的本地化语言信息,ISO-639规范中规定了代表各个国家和地区的本地化语言的名称,例如“en” 表示英文、“la”表示拉丁文、“zh”表示中文、“zh-CN” 表示中文(中国)、“zh-TW” 表示中文(台湾地区)。

例子:

  <product xml:lang="zh-CN" release-date="2002-08-18"/>
  <product xml:lang=“en-US" release-date=" 8/18/2002"/>

在某个元素中设置了xml:space和xml:lang属性,嵌套在该元素中的子孙元素都将沿袭其设置结果。

使用名称空间引入XML Schema文档

文件清单:xmlbook.xml
<?xml version="1.0" encoding="UTF-8"?>
<书架 xmlns="http://www.it315.org/xmlbook/schema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.it315.org/xmlbook/schema
         http://www.it315.org/xmlbook.xsd"
>
    <书>
        <书名>JavaScript网页开发</书名>
        <作者>张孝祥</作者>
        <售价>28.00元</售价>
    </书>
</书架>

schemaLocation属性的设置值中包含有两个部分,第一个部分就是名称空间的URI,第二个部分就是该名称空间所标识的XML Schema文件的位置或URL地址,这两个部分之间用空格分隔。

使用名称空间引入多个XML Schema文档

文件清单:xmlbook.xml
<?xml version="1.0" encoding="UTF-8"?>
<书架 xmlns="http://www.it315.org/xmlbook/schema"
    xmlns:demo="http://www.it315.org/demo/schema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.it315.org/xmlbook/schema  http://www.it315.org/xmlbook.xsd
        http://www.it315.org/demo/schema http://www.it315.org/demo.xsd">
    <书>
        <书名>JavaScript网页开发</书名>
        <作者>张孝祥</作者>
        <售价 demo:币种=”人民币”>28.00元</售价>
    </书>
</书架>

不使用名称空间引入XML Schema文档

文件清单:xmlbook.xml
<?xml version="1.0" encoding="UTF-8"?>
<书架 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="xmlbook.xsd">
    <书>
        <书名>JavaScript网页开发</书名>
        <作者>张孝祥</作者>
        <售价>28.00元</售价>
    </书>
</书架>

DOM4J 解析 XML 文档 

XML 的四种解析技术

1)DOM:DOM 解析器把 XML 文档转化为一个包含其内容的树,并能够对树进行遍历。用 DOM 解析模型的长处是编程容易,能够很容易的添加和修改树中的元素。然而由于使用 DOM 解析器的时候需要处理整个 XML 文档,所以对性能和内存的需要比较高,尤其是碰到很大的 XML 文档的时候。

2)SAX:SAX 解析器采用了基于事件的模型(在解析 XML 文档的时候能够触发一系列的事件,当发现给定的tag的时候,他能够激活一个回调方法,告诉该方法定制的标签已找到)。因为他让程序员自己来决定所要处理的tag,所以当只需要处理文档中所包含的部分数据时,SAX 有良好的表现。但用 SAX 解析器的时候编码工作会比较困难,而且很难同时访问同一个文档中的多处不同数据。

3)JDOM:JDOM的目的是成为 Java 特定文档模型,他简化和 XML 的交互并且比使用 DOM 实现更快。

4)DOM4J:DOM4J 是很优秀的Java XML API,具备性能优异、功能强大和极端易用使用的特点,同时他也是个开放源代码的软件。如今越来越多的 Java 软件都在使用 DOM4J 来读写 XML

DOM4J 简介

dom4j是一个简单的、灵活的开放源代码的库。与JDOM一样,dom4j 也应用于Java平台。dom4j API使用了Java集合框架。dom4j是由早期开发JDOM的人分离出来而后独立开发的。与JDOM不同的是,dom4j使用接口和抽象基类,虽然dom4j的API相对要复杂一些,但它提供了比JDOM更好的灵活性。dom4j是一个非常优秀的Java XML API,具有性能优异、功能强大和极易使用的特点.

Document对象相关

//1.读取XML文件,获得document对象.             
                   SAXReader reader = new SAXReader();              Document   document = reader.read(new File("input.xml"));

//2.解析XML形式的文本,得到document对象.
                   String text = "<members></members>";              Document document = DocumentHelper.parseText(text);

//3.主动创建document对象.
                  Document document = DocumentHelper.createDocument();             //创建根节点
                  Element root = document.addElement("members");

节点相关

//1.获取文档的根节点.
      Element rootElm = document.getRootElement();

//2.取得某节点的单个子节点.
     //"member"是节点名
     Element memberElm=root.element("member");

//3.取得节点的文字
      String text=memberElm.getText();

      //也可以:
      //这个是取得根节点下的name字节点的文字.
      String text=root.elementText("name");
  //4.取得某节点下名为"member"的所有字节点并进行遍历.
 List nodes = rootElm.elements("member");

  for (Iterator it = nodes.iterator(); it.hasNext();) {
     Element elm = (Element) it.next();
    // do something
 }
//5.对某节点下的所有子节点进行遍历.
    for(Iterator it=root.elementIterator();it.hasNext();){
       Element element = (Element) it.next();
       // do something
    }
//6.在某节点下添加子节点.
Element ageElm = newMemberElm.addElement("age");
//7.设置节点文字.
 ageElm.setText("29");
//8.删除某节点.
//childElm是待删除的节点,parentElm是其父节点
    parentElm.remove(childElm);
//9.添加一个CDATA节点.
Element contentElm = infoElm.addElement("content");
contentElm.addCDATA(diary.getContent());

属性相关

//1.取得某节点下的某属性    Element root=document.getRootElement();        //属性名name
         Attribute attribute=root.attribute("size");
//2.取得属性的文字    String text=attribute.getText();
//这个是取得根节点下name字节点的属性firstname的值.
    String text2
            =root.element("name").attributeValue("firstname");
//3.遍历某节点的所有属性
       Element root=document.getRootElement();
for(Iterator it=root.attributeIterator();it.hasNext();){
       Attribute attribute = (Attribute) it.next();
       String text=attribute.getText();
       System.out.println(text);    }

//4.设置某节点的属性和文字.   newMemberElm.addAttribute("name", "sitinspring");

//5.设置属性的文字
     Attribute attribute=root.attribute("name");          attribute.setText("sitinspring");
//6.删除某属性 //属性名name
     Attribute attribute=root.attribute("size"); root.remove(attribute);

将文档写入XML文件

//1.文档中全为英文,不设置编码,直接写入的形式.
 XMLWriter writer = new XMLWriter(new  FileWriter("output.xml"));  writer.write(document);  writer.close();

//2.文档中含有中文,设置编码格式写入的形式.OutputFormat format = OutputFormat.createPrettyPrint();// 指定XML编码
 format.setEncoding("GBK");       XMLWriter writer = new XMLWriter(newFileWriter("output.xml"),format);writer.write(document);writer.close();

字符串与XML的转换

//1.将字符串转化为XML
    String text = "<members> <member>sitinspring</member></members>";
    Document document = DocumentHelper.parseText(text);

//2.将文档或节点的XML转化为字符串.
    SAXReader reader = new SAXReader();
    Document   document = reader.read(new File("input.xml"));
    Element root=document.getRootElement();
    String docXmlText=document.asXML();
    String rootXmlText=root.asXML();
    Element memberElm=root.element("member");
    String memberXmlText=memberElm.asXML();
时间: 2024-10-11 07:03:50

java_web学习(3)XML基础的相关文章

.net学习笔记---xml基础知识

一.XML简介 XML是一种标记语言,用于描述数据,它提供一种标准化的方式来来表示文本数据.XML文档以.xml为后缀.需要彻底注意的是XML是区分大小写的. 先从一个简单的XML例子来了解下xml基础: <?xml version="1.0" encoding="utf-8" ?> <books ISBN="9787544238212"> <title>xml学习笔记</title> <pr

xml基础知识的学习

xml基础知识学习: xml的特点:xml与操作系统.编程语言的开发平台都无关 实现不同系统之间的数据交互 xml:可扩展标记语言 html: xml结构:   <?xml version ="1.0" encoding ="UTF-8" ?> --xml文件的声明encoding 不写默认为UTF-8 <根元素>     <子元素1 属性="value">         <元素>值</元素

XML基础+Java解析XML +几种解析方式的性能比较

XML基础+Java解析XML 一:XML基础 XML是什么: 可扩展的标记语言 XML能干什么: 描述数据.存储数据.传输(交换)数据. XML与HTML区别: 目的不一样 XML 被设计用来描述数据,其焦点是数据的内容. HTML 被设计用来展示数据,其焦点是数据的外观. HTML可以不关闭标签(即标签可以不成对出现),但XML必须关闭标签(即标签必须成对出现). HTML中的标签标识文本如何展示,而XML中的标签标识文本是什么含义(什么类型的文本). XML文档节点类型 u     文档(

Java web基础总结一之—— xml基础

Java web基础总结之一--xml基础 要学习java web,掌握xml语言是必要的,可以说,在一个java web项目中,xml配置文件无处不在.首先每个java web项目都会有一个web.xml的配置文件.而在各种各样的框架中,xml配置文件更是必不可少.当然,虽然有些框架可以使用注解来实现零配置.但是一般还是习惯于使用配置文件,可以和代码解耦和. 一.Xml基础知识以及语法规范 那首先的问题是,什么是xml?它主要用来做什么? Xml是Extensible Markup Langu

XML基础&lt;第一篇&gt;

一.XML简介 XML是一种标记语言,用于描述数据,它提供一种标准化的方式来来表示文本数据.XML文档以.xml为后缀.需要彻底注意的是XML是区分大小写的. 先从一个简单的XML例子来了解下xml基础: <?xml version="1.0" encoding="utf-8" ?> <books ISBN="9787544238212"> <title>xml学习笔记</title> <pr

万树IT:Android软件开发必学习的0基础内容

如今安卓系统中国的前景市场是非常广阔的,它主要针对的是移动设备市场,而如今智能手机已经占据人们生活不能缺少的一部分.所以,很多行业投入到安卓软件开发,进入到安卓开发的人才也越来越多. 安卓应用软件开发必学习的5大基础内容: 1.编程语言 2.基础应用开发 3.核心组件开发Android论坛交流 4丶安卓论坛交流学习 5.深入开发 Android软件开发必学习的0基础内容 1.编程语言的学习 安卓应用软件开发中有很多的编程语言可以使用,所以应该重点学习以下几种编程语言. ①  C/C++语言.  

第65节:Java后端的学习之Spring基础

Java后端的学习之Spring基础 如果要学习spring,那么什么是框架,spring又是什么呢?学习spring中的ioc和bean,以及aop,IOC,Bean,AOP,(配置,注解,api)-springFramework. 各种学习的知识点: spring expression language spring integration spring web flow spring security spring data spring batch spring网站: http://sp

XML基础知识

1.XML基础2.XML语法3.XML DOM4.Javascript解析XML文档 1.XML基础eXtensible Markup Language 可扩展标记语言XML是一种平台无关的用于携带和传送数据的方法. ~~~~xml主要是描述数据是什么,一般没有数据如何呈现的信息,有别于HTML,HTML可以说是xml的一种实现.(注:xhtml才是xml的一种实现) xml文档可以用IE 文本编辑器或者专门的XML编辑器浏览 ~~~xml不同平台的数据交换,但不适合大批量数据的存储与处理(有别

XML基础以及用DOM4j读取数据

都知道,HTML被设计用来显示数据,XML被设计用来保存.传输数据.而我们平时经常用的无非是保存数据.读取数据.所以这里主要介绍XML相关基础内容,以及用DOM4j来存取XML的数据. 下面简介XML相关的基础内容--命名空间.XSL.DTD与Schema 1>基本结构 ------------------------- ?  <>成对,区分大小写 ?  顶层元素只能有一个 ?  元素不能以xml开头,且不能有空格 2>命名空间 与我们编程语言中的命名空间类似,例如,如果想要建立两