Dom4j解析文档
来源:互联网 发布:男生自慰肛门知乎 编辑:程序博客网 时间:2024/05/29 15:39
Dom4j解析文档
1、Dom4j解析文档
特点:Dom4j是一个简单、灵活的开放源代码的库。Dom4j是由早期开发JDOM开发的。与JDOM不同的是,dom4j使用接口和抽象的人分离出来而后独立基类,虽然Dom4j的API相对要复杂一些,但它提供了比JDOM更好的灵活性。
优点:Dom4j是一个非常优秀的Java XML API,具有性能优异、功能强大和极易使用的特点。现在很多软件采用的Dom4j,例如Hibernate,包括sun公司自己的JAXM也用了Dom4j。
2、DOM4j中,获得Document对象的方式有三种:
1.读取XML文件,获得document对象
SAXReader reader = new SAXReader();
Document document = reader.read(new File("input.xml"));
2.解析XML形式的文本,得到document对象.
String text ="<members></members>";
Document document = DocumentHelper.parseText(text);
3.主动创建document对象.
Document document =DocumentHelper.createDocument();
//创建根节点
Element root =document.addElement("members");
3、一下代码是dom4J对xml文档的增删改查
//遍历所有节点
public static void listNodes(Elementelememt){
//org.dom4j.Element root =doc.getRootElement();
//返回的是一个迭代器,把根节点下的所有子字节的元素都获取到,并放到迭代器里
Iterator it = elememt.elementIterator();
while(it.hasNext()){
Element sun = (Element) it.next();
System.out.println("这是一个节点:"+sun.getName());
listNodes(sun);
}
}
//遍历属性节点
public static voidlistElementAttribute(Element element){
System.out.println(element.attributeCount());
for(Iterator it =element.attributeIterator();it.hasNext();){
Attribute att = (Attribute)it.next();//强制类型装换
System.out.println(att.getName()+" "+att.getText()+""+att.getNodeTypeName());
}
}
//添加一个元素
public static void createElement(Documentdoc) throws Exception,FileNotFoundException{
//找到需要添加节点的位置,寻找根
Element root = doc.getRootElement();
Element parent =root.addElement("书");
//添加节点
Element element =parent.addElement("出版社");
element.addText("清华大学出版");///添加内容
element.addAttribute("级别", "一级出版社");//添加属性
//把内存中的语句写入到文档中
//构建字符输出流
OutputStreamWriter writer = new OutputStreamWriter(newFileOutputStream("src/Book.xml"),"utf-8");
XMLWriter xmlWriter = new XMLWriter();
xmlWriter.write(doc);
xmlWriter.close();
//writer.write(comment)
}
public static void deleteElement(Documentdoc) throws Exception,FileNotFoundException{
//找到需要添加节点的位置,寻找根
Element root = doc.getRootElement();
Element parent =root.addElement("书");
//删除节点
Element element =parent.element("作者");
parent.remove(element);
//修改元素节点的内容
Element price =parent.element("售价");
price.setText("50");
//删除某一个元素节点的属性
Element publish =parent.element("出版社");
Attribute att =publish.attribute("级别");
publish.remove(att);
//把内存中的语句写入到文档中
//构建字符输出流
OutputStreamWriter writer = new OutputStreamWriter(newFileOutputStream("src/Book.xml"),"utf-8");
XMLWriter xmlWriter = new XMLWriter();
xmlWriter.write(doc);
xmlWriter.close();
//writer.write(comment)
}
介绍Scheam
是一种用于定义和描述xml文档的模式文档(约束文档),遵循这个文档书学写的xml文档成为实例文档,他的出现是为了克服dtd的约束,他能支持更多的数据类型,并支持用户自定义新的数据类型,他有字符串类型,日期类型。
XML Schema 和 DTD的不同:
• XML Schema符合XML语法结构。
• DOM、SAX等XML API很容易解析出XML Schema文档中的内容。
• XML Schema对名称空间支持得非常好。
• XML Schema比XML DTD支持更多的数据类型,并支持用户自定义新的数据类型。
• XML Schema定义约束的能力非常强大,可以对XML实例文档作出细致的语义限制。
• XML Schema不能像DTD一样定义实体,比DTD更复杂,但Xml Schema现在已是w3c组织的标准,它正逐步取代DTD。
Scheam的了解:
l XML Schema 文件自身就是一个XML文件,但它的扩展名通常为.xsd。
l 一个XMLSchema文档通常称之为模式文档(约束文档),遵循这个文档书写的xml文件称之为实例文档。
l 和XML文件一样,一个XML Schema文档也必须有一个根结点,但这个根结点的名称为Schema。
l 编写了一个XMLSchema约束文档后,通常需要把这个文件中声明的元素绑定到一个URI地址上,在XML Schema技术中有一个专业术语来描述这个过程,即把XML Schema文档声明的元素绑定到一个名称空间上,以后XML文件就可以通过这个URI(即名称空间)来告诉解析引擎,xml文档中编写的元素来自哪里,被谁约束。
Schema对命名空间是支持非常好的
名称空间是为了解除名称的冲突---------加上前缀------09级java:张三
名称空间的使用
Xml文档中标签
<h:姓名></h:姓名>
<f:姓名></f:姓名>
Schema的约束能力非常大,,可记性对属性非常细致的操作
Schema约束的快速入门
Schema本身就是xml的文件,扩展名为xsd
Schema的文档通常成为模式文档,遵循这个文档书写的xml文档成为实例文档
Schema文档必须有一个根结点
Schema:book.xsduri地址:把定义好的文档绑定到http://www.csdn..com网站上,是我们随便起的名字
Schema:book.xsd
Schema:book.xsdhttp://www.csdn..com 前缀为book
Xml文档
<book:书架></book:书架>指定书架去遵循绑定的约束
book代表的是http://www.csdn..com
- Dom4j解析XML文档
- dom4j解析xml文档
- DOM4J解析XML文档
- dom4j解析xml文档
- Dom4j解析文档
- Dom4j解析文档
- Dom4j解析文档
- Dom4j解析文档
- Dom4j解析文档
- DOM4J解析XML文档
- DOM4J解析XML文档
- Dom4J解析XML文档
- Dom4J解析xml文档
- dom4j解析XML文档
- DOM4J解析XML文档
- dom4j解析xml文档
- DOM4J解析xml文档
- Dom4j解析XML文档
- XML元素
- ADF中解决sequence断号问题
- C语言编译过程总结详 | from web
- 一个含有STL的struct问题
- NFS setting for Ubuntu
- Dom4j解析文档
- jsp的开发模式
- 三十而立的生日
- CFont类
- JDBC的应用
- 20111019
- Windows下gvim第一篇
- 程序员面试题精选--从文件中随机提取一个字符串
- Dropbox:网络存储/云存储/网络U盘/文件动态同步