`
gg19861207
  • 浏览: 179995 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

xml小记

阅读更多

1、 一个典型的XML文件格式

<?xml version=”1.0” encoding=”GBK”?>

<!DOCTYPE person[

<!—定义根节点,并指出该节点的子元素à

<!ELEMENT person(userid?,username?,sex?,age)>//?号表示0或者1个,*号表示该节点出现0次或者多次,+号表示1或者多个,|表示或者,逗号表示并且,()表示一组要共同匹配的表达式

<!—分别对person中的子元素进行说明à

<!ELEMENT userid#PCDATA>

<!ELEMENT usernamefirstname,lastname+>//表示节点username下还有子节点firstname,lastname

<!ELEMENT firstname#PCDATA>

<!ELEMENT lastname#PCDATA>

<!ELEMENT person ANY>//表示节点person下可以出现任意的子节点,已经定义的和没定义的都可以出现在节点person下,子节点也不再有顺序的限制。

<!ELEMENT sex#PCDATA>

<!ELEMENT age#PCDATA>

<!ATTLIST name firstname size(100|500)’100’>//表示firstname节点的size的取值范围是100500之间,默认值是100

]>

<!ATTLIST sex type CDATA ‘male’>//表示节点sex有一个名字为type的属性,该属性的类型为CDATA,默认值为male

<!ATTLIST username shrotname CDATA #FIXED ‘zhang’>

<!ATTLIST username lastname CDATA #IMPLIED>//REQUIRED 表示必须为该属性赋值,IMPLIED 表示不要求必须提供属性值,可有可无。FIXED表示该属性必须取值为某以值,如上述中的shortname的属性值必须为zhang(区分大小写)

<!ATTLIST userid id(7489,7521,7897) #REQUIRED)>//表示节点userid 的属性id的值必须在7489或者7521或者7897这三个值中选取一个。

<person>

<usename>ALLEN</username>

<sex>male</sex>

<age>22</age>

</person>

2、 DTD说明

DTD是用来约束xml文件元素的,可分为内部,外部,公共的。

DTD作用:在大多数情况下,xml文件会存在多个,比如过滤文件,一个模块可能有一个,而这些文件都要求格式统一,这我们的解析类我猜可以根据固定的节点来读取这些信息,所以,我们需要一个共同的约束来限定这些xml文件。

3、 引入外部DTD文件的格式

<?xml versio=”1.0” encoding=”GBK”?>

<!DOCTYPE person SYSTem “demo.dtd”>

4、 MyEclipse 里引入公共的DTD文件

(1) 新建一个xml文件。

(2) 点击右侧的xml,引入系统已经定义好的公共的DTD文件。

5、 xml元素的语法

XML中没有任何的保留字,所以你可以随心所欲的用任何词语来作为元素名称,但是也必须遵守以下规范:

1)、名称中可以包含字母,数字以及其他字母;

2)、名称不能以数字或下划线开头;

3)、名称不能以字母xml(或XMLXml..)开头

4)、名称中不能包含空格。

5)、名称中间不能包含“:”冒号。

6、 读取并解析XML文档

读写XML文档主要依赖于org.dom4j.io

解析类Readerread方法是重载的,可以从InputStream,File,Url等多种不同的源来读取。得到的Document对象就代表了整个XML

读取的字符编码是按照XML文件头定义的编码来转换。如果遇到乱码问题,注意要把各处的编码名称保持一致即可。

源程序:

SAXReader reader = new SAXReader();

String filename = “c:\\config.xml”;

Document document = reader.read(new File(filename));

//文档对象Document可以转化为字符串

String str = document.asXML();

System.out.println(str);







分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics