XML和DTD约束

1.XML:

(1)文档声明以及编码信息

(2)元素,开始标签+内容+结束标签

(3)属性存在开始标签内,可以自己定义,必须使用双引号包裹,多个属性使用空格隔开,一个标签内不能出现同名属性

(4)CDATA标签:语法<![CDATA[内容(回原样输出)]]>


2.DTD约束:

语法:<!--<!DOCTYPE根元素[ 开始,以]>

如:<!--<!DOCTYPE students[

<!ELEMENT students (student*)>

&lt;!&ndash; <!ELEMENT student (name,age,address)>&ndash;&gt;

<!ELEMENT student ((name|age|address)+)>

<!ATTLIST student id CDATA #REQUIRED>

<!ELEMENT name (#PCDATA)>

<!ELEMENT age (#PCDATA)>

<!ELEMENT address (#PCDATA)>

]>-->

?: 元素只能出现 0次或者 1次 最多出现一次

+: 元素出现 1次或者多次 至少出现一次

*: 元素出现0次或者多次 0~n次都可以

|:多个元素只能出现一个

外部语法:<!--<!DOCTYPE 根元素 SYSTEM "外部DTD文件路径">-->

 


2.

技能点1:DOM4J对底层原始的XML解析器进行了高度封装,正是这种封装简化了XML处理。在DOM4J的org.dom4j.io包下提供了如下几个类:

  DOMReader:根据W3C的DOM树创建DOM4J树

  SAXReader:基于SAX解析机制解析一份XML文档,并将其转换为DOM4J树

技能点2:获取属性

  获取所有属性  List<Attribute>  attributes = elem.attributes(); 

  获取指定属性  Attribute attr = elem.attribute("id");

attr.getName()+":"+attr.getValue()  获取属性名和属性值

技能点3:获取元素

  Element rootElem = doc.getRootElement(); 获取根元素

  List<Element> stuList = rootElem.elements(); 获取所有名称的子元素列表

  List<Element> stuList = rootElem.elements("student");获取指定名称子元素列表

  String ename = subElem.getName(); 获取元素名称

  String etext = subElem.getText(); 获取元素文本


3.

技能点1:如何创建新文档Document:

  DocumentFactory:使用了工厂模式

  DocumentHelper:底层还是调用了DocumentFactory

技能点2:如何添加子元素

  Element stuElem = rootElem.addElement("student");

  stuElem.addAttribute("id","003");//id属性

  Element stuAgeElem = stuElem.addElement("age");//age子元素

  stuAgeElem.setText("30");

技能点3:如何写数据到XML文件

  XMLWriter xmlWriter = new XMLWriter(fw,format);

  createPrettyPrint:精致美观格式,带缩进、有换行,格式美观

  createCompactFormat:紧密压缩格式,无缩进、无换行,不推荐

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值