- 浏览: 142307 次
- 性别:
- 来自: 北京
最新评论
-
笑傲郝:
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 907import java.net.*; pub ... -
Swing中可多选下拉框的简单实现
2011-07-08 11:00 8569实现可多选下拉框需要写三个类: MyComboBox ... -
我为什么选择 iBatis 而不是 Hibernate(对于正在选型的人的建议)
2011-07-07 15:10 956[注意]清在回复之前认真地看一下我的帖子,结合你的实际项目经验 ... -
选择Hibernate还是iBatis?
2011-07-07 15:05 1025选择Hibernate还是iBATIS都有它的道理: Hi ... -
通过 JAVA SWING 看透 MVC 设计模式[组图]
2011-07-05 12:42 1154一个好的用户界面(GUI) ... -
Swing MVC 结构
2011-07-05 10:03 1644MVC 是 Model-View-Controller 的简称 ... -
JTree放入JSplitPane范例
2011-07-02 14:58 1190范例1 import javax.swing.JFrame; ... -
STRUTS的struts--config.xml详解
2011-06-16 15:42 193301.<?xml version="1.0&q ... -
Proxool连接池实现
2011-06-16 11:13 960首先从 http://proxool.sourceforg ... -
<c:out value="${}"/>|JSTL标签|标签库和EL
2011-04-28 17:15 1305这是JSTL标签的用法 JST ... -
Spring MVC 入门
2011-04-15 14:07 846这篇文章将教你快速地上手使用 Spring 框架. 如果你 ... -
DispatcherServlet定义档
2011-04-15 10:11 1242DispatcherServlet预设使用servle ... -
JavaMail发送
2011-03-31 17:37 738public boolean sendMailWithPic( ... -
Velocity用法
2011-03-31 15:38 14241、"#"用来标识Velocity的脚本语 ... -
学习Spring之九:AOP in Spring
2011-03-15 22:27 822Spring IoC和 Spring AOP组合,一起形成了S ... -
web缓存服务器
2011-01-28 11:25 1275什么是web缓存服务器 无论企业有多大,Web缓存都有助于优 ... -
JEECMS3.0.2资料
2011-01-28 09:17 905http://jeecms.iteye.com/blog/85 ... -
PDFTable表格生成PDF
2010-06-02 09:28 2733package com.xishui.action; ... -
itext学习之表格pdftable (转载)
2010-06-02 09:26 1562一个最基本的PdfPTable的例子 package ...
相关推荐
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单而直观的API,使得在Java中对XML进行增删改查变得容易。本文将详细介绍如何使用DOM4J进行XML的操作。 首先,我们需要理解XML的基本概念。XML(可扩展...
总之,JavaScript提供了丰富的API来操作XML,这使得在前端实现对XML文件的增删改查成为可能。然而,由于跨域限制,直接在浏览器环境中读写本地文件可能需要借助Web存储、File API或服务器端支持。了解并熟练运用这些...
- DOM解析器将XML文件解析为一个树形结构,通过`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`等类创建和操作DOM树。例如,我们可以使用`getElementsByTagName`、`getAttribute`等方法进行...
在"基于ASP的XML文章系统 v1.13 (xml存储数据增删改操作)"中,ASP被用来处理用户交互和后台数据管理,而XML则作为数据存储和交换的主要格式。 XML(Extensible Markup Language)是一种标记语言,用于存储结构化...
3. 修改XML:通过API可以直接对XML文档进行增删改操作。 4. XPath查询:支持XPath表达式,能快速定位到XML文档中的任意节点。 JAXEN,全称“Java eXtensible Expression Language”,是一个独立于XML解析器的XPath...
ASP中的XML DOM对象模型提供了访问和操作XML文档的方法,如`CreateNode`用于创建新的XML节点,`getElementsByTagName`用于查找特定标签的元素,`innerHTML`用于获取或设置元素的内容,以及`load`和`save`方法用于...
在后台,ASP代码会创建一个新的XML节点,包含文章的标题、内容、作者等信息,并将其插入到XML文件中。 2. 数据删除:删除操作涉及从XML文件中移除特定的文章节点。ASP代码需要找到对应的节点并使用DOM操作来删除它...
- DOM:将整个XML文件加载到内存中形成一个树形结构,便于遍历和操作,但对大型XML文档内存消耗大。 - SAX:事件驱动模型,只读,逐行解析,适用于处理大文件,内存占用少。 - StAX:也是一个流式API,允许向前...
这可能涉及到对原始XML节点的增删改,例如去除特定格式信息,或者将特定样式转换为自定义的XML标签。 4. **生成新的XML文件**:将处理后的数据写入一个新的XML文件。Java的DOM(Document Object Model)或StAX...
例如,你可以使用Load方法加载XML文件,然后通过SelectNodes或SelectSingleNode方法查询XML节点,再用RemoveChild、AppendChild等方法进行增删改操作。 其次,XPath和LINQ to XML是C#中处理XML的两种高效方式。...
例如,创建一个`IXMLDOMDocument`对象,使用`load`方法加载XML文件,然后通过`selectSingleNode`或`selectNodes`方法查询节点,最后使用`appendChild`、`removeChild`等方法对节点进行增删改。 2. SAX解析:SAX是一...
标题中的“一个检查ZIP格式增量包的小工具”指的是一个专门用于检查ZIP压缩文件的软件或程序,它可能具有检测ZIP包内文件的增删改情况、校验完整性、分析内容等特性。这样的工具对于开发者或者系统管理员来说非常...
4. **修改XML**:可以直接对`Element`、`Attribute`进行增删改操作,然后通过`OutputFormat`和`XMLOutputter`输出到文件。 5. **序列化和反序列化**:将`Document`对象转换为XML字符串或反之,是JDOM的基本功能。 *...
8. 操作文件和目录:学习文件系统操作,如读写文件、创建删除目录等。 八、HTTP协议深度剖析 1. HTTP协议原理:理解HTTP请求和响应的工作流程。 2. 防盗链技术:防止资源被非法引用。 3. 302和304状态码:了解...
5> XML解析(SAX/DOM/PULL),写xml文件 6> SharedPreferences 第三天 1> SQLite数据库添删改查操作 A.创建数据库 B.SQLiteOpenHelper自动创建数据库的原理实现 C.数据库版本变化 D.编写代码完成添删改查操作(两...
4. **IO流** (Chapter 23): 学习输入/输出流的概念,包括文件流、字符流、对象序列化,以及如何进行文件复制、读写等操作。 5. **网络编程** (Chapter 24): Java提供了Socket和ServerSocket类进行网络通信,章节...
5> XML解析(SAX/DOM/PULL),写xml文件 6> SharedPreferences 第三天 1> SQLite数据库添删改查操作 A.创建数据库 B.SQLiteOpenHelper自动创建数据库的原理实现 C.数据库版本变化 D.编写代码完成添删改查操作...
ASP.NET相册网站是一个利用...开发这样的网站需要对ASP.NET框架有深入理解,包括但不限于Web Forms、HTTP Handler、AJAX以及数据库操作等技能。同时,良好的用户体验设计和数据库优化也是构建高质量相册网站的关键。
- **NoSQL 数据库类型**:键值对存储、文档存储等。 - **Go 客户端库**:针对 MongoDB、Redis 等数据库的支持。 - **应用场景**:大数据处理、实时分析等。 **5.7 小结** - **数据库选择**:根据项目需求合理选择...
`document.getElementById()`、`querySelector()`和`querySelectorAll()`等方法用于选取元素,`innerHTML`、`innerText`和`textContent`用于读写元素内容,而`appendChild()`、`removeChild()`和`insertBefore()`则...