- 浏览: 138431 次
- 性别:
- 来自: 北京
最新评论
-
笑傲郝:
JSP中,hidden用法 -
眼镜蛇:
哦,找到了,getComboVc()。开始没细看。不好意思
Swing中可多选下拉框的简单实现 -
眼镜蛇:
朋友不知你还能不能看到,这个组件写得非常好。但我想知道,我应该 ...
Swing中可多选下拉框的简单实现 -
lzth:
--什么是命名查询?
Hibernate允许在映射文件中定义 ...
Hibernate中sql-query return CDATA 用法 -
wuzhiyuzhi:
在这里面写SQL有什么用的呀?为什么要在XML里这样写?
Hibernate中sql-query return CDATA 用法
用DOM4J对XML文档的读写增删改等操作,是我自己的练习题,没有整理和注释,只做以后查看之用。主要方法在构造函数中做了简单说明,涉及到的 XML、XSD、DTD文档不再写入。
package xml.dom4j.wkjava; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.Iterator; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; import org.xml.sax.EntityResolver; import org.xml.sax.InputSource; import org.xml.sax.SAXException; public class Test { Document doc = null; public Test() throws DocumentException, IOException, SAXException { Document doc = loadXML("class.xml"); //载入XML文档 System.out.println(doc.asXML()); printDoc(doc); //打印XML文档 storeDoc(doc,"new.xml"); //把XML文档存入硬盘 doc = valideDoc("class.xml"); //校验dtd XML文档 printDoc(doc); doc = validateDocBySxd("classSchema.xml"); //校验Schema文档 printDoc(doc); String url = getClass().getResource("/xml/dom4j/wkjava/class.xsd").toString(); doc = validateDocBySxd("classSchema.xml",url); //校验Schema文档(俩参数) printDoc(doc); doc = createDoc(); //创建Schema文档 storeDoc(doc,"root.xml"); doc = validateDocBySxd("classSchema.xml"); updateZip(doc,"102202"); //在文档中修改原属 printDoc(doc); doc = validateDocBySxd("classSchema.xml"); printNames(doc); //打印文档中所有学生名字 System.out.println(getStudentCount(doc)); } public static void main(String[] args) { try { new Test(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } } public Document loadXML(String xmlfile) throws FileNotFoundException, DocumentException{ SAXReader reader = new SAXReader(); doc = reader.read(new FileInputStream(xmlfile)); return doc; } public void printDoc(Document doc) throws IOException { Writer out = new OutputStreamWriter(System.out,"gb2312"); OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = new XMLWriter(out, format); writer.write(this.doc); out.flush(); } public void storeDoc(Document doc,String filename) throws IOException { Writer out = new OutputStreamWriter(new FileOutputStream(filename),"utf-8"); OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = new XMLWriter(out, format); writer.write(this.doc); printDoc(doc); out.close(); } public Document valideDoc(String xmlfile) throws DocumentException, IOException{ EntityResolver resolver = new EntityResolver(){ public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { if(publicId.equals("//class from weiking")){ InputStream in = new FileInputStream("class.dtd"); return new InputSource(in); } return null; } }; SAXReader reader = new SAXReader(true); reader.setEntityResolver(resolver); Document doc = reader.read(new FileInputStream(xmlfile)); return doc; } public Document validateDocBySxd(String xmlfile) throws SAXException, DocumentException, IOException{ SAXReader reader = new SAXReader(true); reader.setFeature("http://apache.org/xml/features/validation/schema",true); Document doc = reader.read(new FileInputStream(xmlfile)); return doc; } public Document validateDocBySxd(String xmlfile,String SchemaUrl) throws SAXException, FileNotFoundException, DocumentException{ SAXReader reader = new SAXReader(true); reader.setFeature("http://xml.org/sax/features/validation", true); reader.setFeature("http://apache.org/xml/features/validation/schema",true); reader.setFeature("http://apache.org/xml/features/validation/schema-full-checking",true); reader.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation",SchemaUrl); Document doc = reader.read(new FileInputStream(xmlfile)); return doc; } public Document createDoc() { Document doc = DocumentHelper.createDocument(); Element root = doc.addElement( "root" ); Element author2 = root.addElement( "author" ) .addAttribute( "name", "Toby" ) .addAttribute( "location", "Germany" ) .addText( "Tobias Rademacher" ); Element author1 = root.addElement( "author" ) .addAttribute( "name", "James" ) .addAttribute( "location", "UK" ) .addText( "James Strachan" ); return doc; } public void updateZip(Document doc,String zip){ String xpath = "/Class/Teacher/zip"; Element e = (Element)doc.selectSingleNode(xpath); e.setText(zip); } public void printNames(Document doc){ String xpath = "/Class/Students/Student/name"; List list = doc.selectNodes(xpath); for(Iterator i = list.iterator(); i.hasNext();){ Element e = (Element)i.next(); System.out.println(e.element("last").getText() + e.valueOf("first")); } } public int getStudentCount(Document doc){ int count = 0; String xpath ="count(/Class/Students/Student)"; count = doc.numberValueOf(xpath).intValue(); // String value = doc.valueOf(xpath); // count = Integer.parseInt(value); return count;
发表评论
-
java中serializable是什么
2012-04-27 10:02 0一个对象序列化的接口,一个类只有实现了Serializab ... -
Java获取本地IP
2012-04-26 17:36 821import java.net.*; pub ... -
Swing中可多选下拉框的简单实现
2011-07-08 11:00 8516实现可多选下拉框需要写三个类: MyComboBox ... -
我为什么选择 iBatis 而不是 Hibernate(对于正在选型的人的建议)
2011-07-07 15:10 925[注意]清在回复之前认真地看一下我的帖子,结合你的实际项目经验 ... -
选择Hibernate还是iBatis?
2011-07-07 15:05 989选择Hibernate还是iBATIS都有它的道理: Hi ... -
通过 JAVA SWING 看透 MVC 设计模式[组图]
2011-07-05 12:42 1116一个好的用户界面(GUI) ... -
Swing MVC 结构
2011-07-05 10:03 1585MVC 是 Model-View-Controller 的简称 ... -
JTree放入JSplitPane范例
2011-07-02 14:58 1160范例1 import javax.swing.JFrame; ... -
STRUTS的struts--config.xml详解
2011-06-16 15:42 167901.<?xml version="1.0&q ... -
Proxool连接池实现
2011-06-16 11:13 914首先从 http://proxool.sourceforg ... -
<c:out value="${}"/>|JSTL标签|标签库和EL
2011-04-28 17:15 1273这是JSTL标签的用法 JST ... -
Spring MVC 入门
2011-04-15 14:07 807这篇文章将教你快速地上手使用 Spring 框架. 如果你 ... -
DispatcherServlet定义档
2011-04-15 10:11 1204DispatcherServlet预设使用servle ... -
JavaMail发送
2011-03-31 17:37 706public boolean sendMailWithPic( ... -
Velocity用法
2011-03-31 15:38 13561、"#"用来标识Velocity的脚本语 ... -
学习Spring之九:AOP in Spring
2011-03-15 22:27 780Spring IoC和 Spring AOP组合,一起形成了S ... -
web缓存服务器
2011-01-28 11:25 1239什么是web缓存服务器 无论企业有多大,Web缓存都有助于优 ... -
JEECMS3.0.2资料
2011-01-28 09:17 861http://jeecms.iteye.com/blog/85 ... -
PDFTable表格生成PDF
2010-06-02 09:28 2684package com.xishui.action; ... -
itext学习之表格pdftable (转载)
2010-06-02 09:26 1524一个最基本的PdfPTable的例子 package ...
相关推荐
完整的讲解一个dom4j对xml的增删改查
Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc
使用dom4j对xml的读写(这个感觉比jdom功能好点,但是复杂一点点)
使用Dom4j对XML文档做增删改查,其中XML充当数据库角色,案例使用分层思想
NULL 博文链接:https://sxpujs.iteye.com/blog/375485
基于dom4j的读写xml文件的工具包。封装了dom4j操作xml文档的常和方法。 支持两种读写方法。1:针对小文件的读取整个文档,2:针对大文件的,逐行读取。读到几百M文件毫无压力。
DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件
Java用dom4j对xml进行增删改查操作,提供这个资料给大家参考。
dom4j读写xmldom4j读写xmldom4j读写xmldom4j读写xmldom4j读写xml
使用dom4j对xml文档进行增删改. 查询就不用说了,使用elements(....)/element(...)/attributeValue()/getText()等方法
dom4j解析xml文件代码示例 dom4j解析xml文件代码示例 dom4j解析xml文件代码示例
dom4j是非常优秀的xml解析包,操作起来读写xml非常方便。把自己写的一个读写dom4j.xml实例共享给大家
dom4j解析XML文件格式dom4j解析XML文件格式dom4j解析XML文件格式
例题采用的是dom4j对xml的操作,包含了对xml的增加删除修改操作.
本教程是dom4j操作xml的增删改查的案例,当我们使用dom4j可以做基础性的参考
dom4j解析xml文件的压缩包,完整版。对jdom进行了封装。包含源码,jar包以及所需的全部内容。
该示例实现MAVEN来进行创建的,实现了dom4j操作XML文件,包括创建XML、动态创建XML节点、更新XML节点、删除XML节点。
使用DOM4J对XML文件操作-添加、修改、删除、获取元素节点
Dom4j 读写 XML
Dom4J生成XML的完整方法希望大家能用到