`
gg19861207
  • 浏览: 181740 次
  • 性别: 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);







分享到:
评论

相关推荐

    xstream使用小记

    《Xstream使用小记》 Xstream是一款Java库,它提供了简单且强大的方式来序列化和反序列化Java对象到XML,以及从XML回转换为Java对象。在本文中,我们将深入探讨Xstream的核心概念、使用场景以及如何通过实例进行...

    android开发小记

    在“android开发小记”这个主题中,我们可以深入探讨Android应用程序开发的相关知识,特别是通过查看提供的压缩文件中的代码示例。这些文件名如lesson_8_code.zip至lesson_20_codel.zip,以及不同的Mp3Player版本,...

    asp.net Jmail使用小记

    ```xml ``` 接下来,我们可以在代码中创建Jmail实例,设置邮件属性并发送邮件。以下是一个简单的示例: ```csharp using System; using com.ccc.JMail; public partial class Default : System.Web...

    python进行爬虫小记

    XPath是XML路径语言,可以通过`lxml`库中的`etree`模块来使用。例如,`tree.xpath('//li/ul/a')`可以选取所有`&lt;li&gt;`标签下的`&lt;a&gt;`标签。CSS选择器则可通过`parsel`库的`Selector`类使用,如`sel.css('li ul a')`同样...

    安卓做的小记账本app.zip

    1. **源代码**:分为几个部分,如`java`目录下的各个包,包含主要的业务逻辑和UI组件,`res`目录存储资源文件如布局XML、图标、字符串等,`AndroidManifest.xml`是应用配置文件,定义应用的基本信息和权限。...

    WebWork上传下载功能小记.pdf

    3. **配置xwork.xml**:在xwork.xml配置文件中,需要为上传Action添加特定的配置,包括使用`params`拦截器处理文件参数,并指定`fileUpload`拦截器来处理文件上传。 4. **编写上传方法**:在Action中,你需要一个...

    windows下部署tomcat项目小记

    2. **配置错误**:检查`web.xml`或`context.xml`中的配置是否正确,包括Servlet、Filter和Listener的设置。 3. **资源缺失**:确认所有依赖的JAR包已添加到`WEB-INF/lib`目录,或者在服务器的`lib`目录中(如果是...

    Flex整合J2EE开发小记+源码下载

    标题中的“Flex整合J2EE开发小记+源码下载”揭示了本次讨论的主题,即如何将Adobe Flex技术与Java企业版(J2EE)框架相结合进行应用开发,并且提供了相关的源代码供学习和参考。Flex是一种用于构建富互联网应用程序...

    d3js 学习小记

    ### D3.js 学习小记 #### SVG基础与D3.js绘图实践 ##### SVG基础 SVG(可缩放矢量图形)是一种基于XML的矢量图像格式,用于描述二维图形以及图形应用。SVG 图像可以被放大、缩小而不会失真,非常适合于网页制作。...

    J2EE开发之常用开源项目小记

    这篇小记主要关注了几个关键领域:持久层、MVC框架、视图层、JavaScript库以及缓存技术。下面将详细阐述这些知识点。 1. **持久层**: - **Hibernate**:是一个流行的ORM(对象关系映射)框架,允许开发者以面向...

    Hessian 的字段序列化小记

    本文将围绕"Hessian的字段序列化小记"这一主题,深入探讨Hessian的工作原理、序列化过程以及其在实际应用中的价值。 Hessian的目标是通过减少数据传输的体积来提高网络通信的效率。相比于XML和JSON等文本格式,...

    liferay开发小记---开发环境的搭建

    编写Service Builder的XML配置文件,然后通过Maven生成对应的Java代码和服务API。 总之,“liferay开发小记——开发环境的搭建”涵盖了从安装必备软件到创建并部署portlet的整个过程。熟悉这个过程将使你在Liferay...

    myeclipse试用小记----Hibernate多对一单向关联(1)

    标题 "myeclipse试用小记----Hibernate多对一单向关联(1)" 提到的是在MyEclipse集成开发环境中使用Hibernate框架实现多对一单向关联的实践记录。这个主题涉及到Java后端开发中的数据库关系映射和对象持久化技术。 ...

    Display_Tag使用小记

    配置 Display Tag 需要在 `web.xml` 文件中添加一个 Filter,用于设置 ResponseOverrideFilter,这是 Display Tag 处理数据导出的关键部分。配置如下: ```xml &lt;filter-name&gt;exportFilter &lt;filter-class&gt;org....

    我的日常小记:spring以及mybatis最终源码

    在本项目中,"我的日常小记:spring以及mybatis最终源码" 是一个记录了开发者个人编程经验的项目,主要涉及两个核心框架——Spring和MyBatis。这两个框架是Java开发领域中非常流行的技术栈,广泛应用于企业级后端...

    myeclipse试用小记----Hibernate多对一双向关联(2)

    在本篇【myeclipse试用小记----Hibernate多对一双向关联(2)】中,博主主要探讨了使用MyEclipse集成开发环境与Hibernate框架进行多对一双向关联的配置与实现。MyEclipse是Eclipse的一个强大扩展,特别适合Java Web...

    android 的相对布局的使用小记

    在Android Studio中,可以在XML布局文件中添加`&lt;RelativeLayout&gt;`作为根元素,然后在其中添加子视图,如按钮或文本视图。每个子视图都可以通过上述规则属性与其他视图建立关系。以下是一个简单的例子: ```xml ...

    myeclipse试用小记----Hibernate多对一自身关联(3)

    标题中的“myeclipse试用小记----Hibernate多对一自身关联(3)”表明了这篇内容是关于MyEclipse IDE的使用体验,特别聚焦在Hibernate框架中的多对一自身关联关系的实践与理解。Hibernate是Java开发中常用的一个对象...

Global site tag (gtag.js) - Google Analytics