首页 SAX解析xml时命名空间以及参数问题

SAX解析xml时命名空间以及参数问题

举报
开通vip

SAX解析xml时命名空间以及参数问题SAX解析xml时命名空间以及参数问题 本文以实例形式解释下java利用SAX解析xml时命名空间及其参数问题。 (关于xml使用及命名空间的详细展开,可以参考W3school官方教程,这里提供的是关于主题的敏捷版) 1.命名空间直观感受 首先对命名空间有个直观感受,请看下面的未使用命名空间的xml代码。 清单1-1 :books.xml [html] view plaincopyprint? 1.    2.     3.       4.       Harry Potter   5.       J K. ...

SAX解析xml时命名空间以及参数问题
SAX解析xml时命名空间以及参数问题 本文以实例形式解释下java利用SAX解析xml时命名空间及其参数问题。 (关于xml使用及命名空间的详细展开,可以参考W3school官方教程,这里提供的是关于主题的敏捷版) 1.命名空间直观感受 首先对命名空间有个直观感受,请看下面的未使用命名空间的xml代码。 清单1-1 :books.xml [html] view plaincopyprint? 1.    2.     3.       4.       Harry Potter   5.       J K. Rowling   6.       7.       8.       Learning XML   9.       Erik T. Ray   10.       11.      Harry Potter J K. Rowling Learning XML Erik T. Ray 然后请看下面使用了命名空间的xml代码。 清单1-2: NameSpaceDemo.xml [html] view plaincopyprint? 1.    2.    3.     4.       5.        6.       Harry Potter    7.       J K. Rowling    8.        9.       10.        11.       Learning XML    12.       Erik T. Ray    13.        14.      Harry Potter J K. Rowling Learning XML Erik T. Ray 可以看出命名空间的形式,就是如下图所示结构: 这里关键几个概念是: 命名空间标识符NamespaceIdentifier 命名空间与java中包机制类似,用来避免在同一文件中包含相同名称但结构不同的元素时可能出现的冲突。命名空间标识符可以使用URL以及其他方式,本例中对应的标识符是  命名空间前缀Prefix 前缀就是命名空间的快捷引用方式,它也称作命名空间的别名(alias)。 本例中对应的是 jd 不带前缀和命名空间的本地名称LocalName (Part) 本例中是booktitle author。 带有别名前缀的限定名QualifiedName (qName) 由别名前缀,冒号以及元素名称组成,这些名称很清晰,可被解析器解析和验证。 本例中是jd:book  jd:title 默认命名空间 就是省去前缀的命名空间,这样在后续的 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 写时就不用带上前缀了。例如本例中的 Learning XML Erik T. Ray 使用的就是默认命名空间。 2.java SAX解析xml参数问题 这里尤其以方法,public void startElement(String uri, String localName, String qName, Attributes attributes) 为例. uri- 代 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 命名空间的标识符,当元素没有命名空间或者解析器的命名空间支持特性没有打开时是空串。注意,可以使用SAXParserFactory的public void setNamespaceAware(boolean awareness)打开支持命名空间特性。 localName - 代表没有前缀的本地名,当支持命名空间特性没有打开时是空串。 qName - 代表带有前缀的限定名,当限定名不能获取时是空串。 attributes - 与元素相关的属性,如果没有属性,那么就是空的属性对象。 下面给出解析上面带有命名空间的xml文档的实例代码,通过观察结果,更好的理解上述参数。 代码清单:SAXTest.java [html] view plaincopyprint? 1. package com.learningjava;   2.    3. import java.io.File;   4. import java.util.ArrayList;   5. import javax.xml.parsers.SAXParser;   6. import javax.xml.parsers.SAXParserFactory;   7. import org.xml.sax.Attributes;   8. import org.xml.sax.SAXException;   9. import org.xml.sax.helpers.DefaultHandler;   10.    11. /**   12.  * This program illustrate using SAX to parser xml   13.  * @author wangdq   14.  * 2011-11-7   15.  */   16. public class SAXTest {   17.     public static void main(String[] args) throws Exception {   18.            19.         //step1 : get a parser   20.         SAXParserFactory factory = SAXParserFactory.newInstance();   21.         factory.setNamespaceAware(true);//performe Namespace processing   22.         SAXParser parser = factory.newSAXParser();   23.         //step2: create a handler   24.         DefaultHandler handler = new DefaultHandler(){   25.                26.              @Override    27.              public void startElement (String uri, String localName,   28.                      String qName, Attributes attributes) throws SAXException   29.                 {        30.                       System.out.format("uri: %-25s\tlocalname: %-10s\tqname: %-10s%n",uri,localName,qName);   31.                       if(localName.equals("title")) {   32.                           title = true;   33.                       }   34.                 }   35.              @Override    36.              public void endElement(String namespaceURI, String localName, String qName)    37.                 throws SAXException {    38.                 // End of processing current element    39.                 if (title) {    40.                     title = false;    41.                 }    42.              }    43.              @Override    44.              public void characters(char[] ch, int start, int length) {   
本文档为【SAX解析xml时命名空间以及参数问题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_005190
暂无简介~
格式:doc
大小:25KB
软件:Word
页数:0
分类:互联网
上传时间:2019-08-21
浏览量:14