JSP中使用XML

1、XML文件的基本结构

XML是eXtensible Markup Language 缩写,称之为可扩展置标语言。

规范的XML文件应当用“XML声明”开始。
根标记可以有若干个子标记。
如果一个标记仅仅包含文本,称为叶标记。
非空标记必须由“开始标记”与“结束标记”组成。
XML文件的标记必须形成树型结构

一个规范的XML文件应当以XML声明作为文件的第一行。一个最基本的XML声明:

 <?xml  version="1.0" ?>

XML声明中也可以指定encoding属性的值,没有指定的情况下默认值是UTF-8。

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

如果在编写XML文件时只准备使用ASCII字符和汉字,可以将encoding属性的值设置为gb2312.

如果在编写XML文件时只准备使用ASCII字符,可以将encoding属性的值设置为ISO-8859-1.

标记名称区分大小写,
例如:<name>Kevin</name><Name> Kevin</Name>是完全不同的标记。

空标记

空标记以 “<”标识开始,用“/>” 标识结束

<chair  width="24"  height="12" />

<和标记名称之间不要含有空格

非空标记

由“开始标记”与“结束标记”以及该标记所含有的内容组成。

 <sex></sex >
CDATA段

如果标记内容想使用尖括号、单引号等这些特殊字符,办法之一是通过使用CDATA段。
CDATA段用“<![CDATA[”作为段的开始,用“]]>”作为段的结束。

<hello>
   <![CDATA[
       boolean boo=true&&false
       <你好>
   ]]>
</hello>
属性

属性是一个名值对,即属性必须由名字和值组成。

<桌子  width="300" height="600" length="1000">
          吃饭用的
</桌子>
<椅子 color="red" />
2、DOM解析器

DOM(Document Object Model,文档对象模型)是W3C制定的一套规范标准。

DOM规范的核心是按树型结构处理数据。

1.使用DOM解析器的基本步骤
  • 实例化一个DocumentBuilderFactory对象:
    DocumentBuilderFactory factory= DocumentBuilderFactory. newInstance();

  • 返回一个DocumentBuilder对象(称做DOM解析器):
    DocumentBuilder builder = factory. newDocumentBuilder();

  • 解析指定的文件,并返回一个实现了Document接口的实例:
    Document document= builder. parse(new File("price.xml")) ;

2.Document对象

DOM解析器负责在内存中建立Document对象

Document document= builder. parse(new File("price.xml")) ;

parse方法将整个被解析的XML文件封装成一个Document对象。

对象结构

Document对象就是一棵“树” 。

Element类、Text类和CDATASection类都是实现了Node接口的类。

一个Element节点中还可含有Element节点、Text节点和CDATASection节点。

Element节点
Element节点常用下列方法获取和该节点相关的信息

String getTagName()返回该节点的名称。
String getTextContent()返回当前节点的所有Text子孙节点中的文本内容。
String getAttribute(String name)返回节点中参数name的属性值。
Boolean hasAttribute(String name) 判断当前节点是否有参数name指定的属性。
NodeList getElementByTagName(String name)返回一个NodeList对象。
NodeList getChildNodes()返回一个NodeList对象。

Text节点

Text节点使用String getWholeText()方法获取节点中的文本。

CDATASection节点

CDATASection节点使用String getWholeText()方法获取该节点中的文本。

3、SAX解析器

SAX解析器不在内存中建立和XML文件相对应的树型结构数据,SAX解析器的核心是事件处理机制。

1.使用SAX解析器的基本步骤
  • 实例化一个SAXParserFactory对象:
    SAXParserFactory factory=SAXParserFactory.newInstance();

  • 返回一个SAXParser对象,称之为SAX解析器:
    SAXParser saxParser=factory.newSAXParser();

  • 解析指定的XML文件:
    SAXParser. parse(new File(“price.xml”), handler);

2.SAX解析器的工作原理

SAX解析器调用parse(File f,DefaultHandler dh)方法解析参数f指定的XML文件,并向该方法的参数dh传递一个事件处理器。

3. 事件的产生与处理

文件开始事件与结束事件:
解析器报告“文件开始”事件,事件处理器就会调用startDocument()方法;
解析器报告“文件结束”事件,事件处理器就会调用endDocument()方法。

开始标记事件与结束标记事件:
当解析器发现一个标记的开始标记时,报告开始事件给事件处理器,事件处理器调用startElement方法对发现的数据做出处理。

解析器报告完该标记的“标记开始”事件后,一定还会报告该标记的“标记结束”事件,事件处理器就会调用 endElement方法进行处理

  endElement(String uri,String localName,String qName)

文本数据事件:
当解析器解析报告“文本数据”事件给处理器,事件处理器就会然后调用characters方法对解析的数据做出处理

注意:对于文本数据,解析器可能分成几个连续的“文本数据”报告给事件处理器。

4、XML与CSS
1.样式表

样式表是一组规则,通过这组规则告诉浏览器用什么样式来显示文本。一个样式表的格式如下:

 文本代表
 {    样式规则
 }

对于XML文件,样式表中的“文本代表”可以是标记的名称;样式表中的“样式规则”是若干个用分号分隔的“属性名:属性值”,例如,样式表

name
{  display:block;font-size:36pt;
    font-weight:bold;
}

如果有多个标记的内容显示方式相同,“文本代表”也可以是这些标记的名称用逗号分隔的字符串。如:

name,sex,birthday
{  display:block;font-size:36pt;
    font-weight:bold;
}

注意:文本代表中不要含有非ASCII字符,早期的IE6.0不支持这样的样式表。

2.文本的显示方式
3.字体

与字体有关的属性包括font-family、font-style、font-variant、font-weight、font-size

Name 
{   
     display:list-item;
     font-size:14pt;
}
4.文本样式

与文本样式有关的属性:

5.显示数学公式和化合物分子式

XML文件通过与CSS样式表文件相关联,可以将某个字符的显示位置设置成另一个字符的上标或下标位置。

5、小结
  • XML文件是由标记构成的文本文件。
  • DOM解析器在内存中按树型结构组织数据。
  • SAX解析器根据从文件中解析出的数据产生相应的事件,并报告这个事件给事件处理器。
  • 通过将XML文件和一个CSS样式表文件相关联,可以方便地显示XML文件中的标记所含有的文本。
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值