- 浏览: 468401 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
pyl574069214:
1楼的方法可用
iText操作错误:PdfReader not opened with owner password -
pyl574069214:
谢谢
iText操作错误:PdfReader not opened with owner password -
ggyyso:
解决方法:import java.lang.reflect.F ...
iText操作错误:PdfReader not opened with owner password -
思念-悲伤:
谢了!!!
Exception loading sessions from persistent storage -
u012380013:
加上bos.flush(); 是成功的
Java解压缩zip文件
下面是要解析的xml文件:
<?xml version="1.0" encoding="GB2312"?> <mp3s> <mp3> <name> AAA </name> <time> 11111111 </time> </mp3> <mp3> <name> BBB </name> <time> 22222222 </time> </mp3> </mp3s>
第一种方法:用DOM解析(不需要使用别的jar包):
package cn.lifx.xml.parse; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class DomTest { private static final String path = "D:\\workspace\\XMLParseTest\\test.xml"; private static DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); public static void main(String[] args) { File f = new File(path); try { DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(f); NodeList values = doc.getElementsByTagName("mp3"); for(int i=0; i<values.getLength(); i++) { System.out.println("name: " + doc.getElementsByTagName("name").item(i).getFirstChild().getNodeValue()); System.out.println("time: " + doc.getElementsByTagName("time").item(i).getFirstChild().getNodeValue()); } } catch(FileNotFoundException e) { e.printStackTrace(); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch(SAXException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } } }
第二种方法:用SAX(Simple API for XML)解析,需要使用sax.jar包
package cn.lifx.xml.parse; import java.util.Stack; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class SaxTest extends DefaultHandler { private static final String path = "D:\\workspace\\XMLParseTest\\test.xml"; private static Stack<String> tags = new Stack<String>(); public SaxTest() { super(); } public static void main(String args[]) { SAXParserFactory factory = SAXParserFactory.newInstance(); try { SAXParser parser = factory.newSAXParser(); parser.parse(new InputSource(path), new SaxTest()); } catch (Exception e) { e.printStackTrace(); } } public void characters(char ch[], int start, int length) throws SAXException { while(!tags.isEmpty()) { String tag = tags.pop(); if(tag.equals("name")) { System.out.println("name:" + new String(ch, start, length)); } else if(tag.equals("time")) { System.out.println("time: " + new String(ch, start, length)); } } } public void startElement(String uri, String localName, String qName, Attributes attrs) { tags.push(qName); } }
第三种方法:使用jdom,需要下载jdom.jar包
package cn.lifx.xml.parse; import java.io.File; import java.io.IOException; import java.util.List; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.jdom.input.SAXBuilder; public class JDomTest { private static final String path = "D:\\workspace\\XMLParseTest\\test.xml"; public static void main(String[] args) { File f = new File(path); SAXBuilder builder = new SAXBuilder(); Document doc = null; try { doc = builder.build(f); } catch (JDOMException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } if(doc != null) { Element element = doc.getRootElement(); List values = element.getChildren(); for(int i=0; i<values.size(); i++) { System.out.println("name: " + ((Element)values.get(i)).getChild("name").getText()); System.out.println("time: " + ((Element)values.get(i)).getChild("time").getText()); } } } }
第四种方法:使用dom4j,需要下载dom4j.jar包
package cn.lifx.xml.parse; import java.io.File; import java.util.Iterator; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Dom4jTest { public static void main(String[] args) { String path = "D:\\workspace\\XMLParseTest\\test.xml"; File f = new File(path); SAXReader reader = new SAXReader(); try { Document doc = reader.read(f); Element root = doc.getRootElement(); Element element; for(Iterator i=root.elementIterator("mp3"); i.hasNext();) { element = (Element) i.next(); System.out.println("name: " + element.elementText("name")); System.out.println("time: " + element.elementText("time")); } } catch (DocumentException e) { e.printStackTrace(); } } }
发表评论
-
java中final关键字的使用
2013-05-31 10:04 5044java中final关键字的使用 1. 用final修饰基 ... -
Java类的初始化
2010-02-01 18:28 1199如下面代码 public class Test1 ... -
Java之Exception与try语句
2010-02-01 18:21 1337代码如下: public class Test1 ... -
java之对象引用static变量
2010-01-18 09:53 1577如下面代码 public class Test { ... -
java之catch语句
2010-01-13 20:16 1981如下面代码: public class Test { ... -
java之static变量
2010-01-13 20:07 1133如下面代码: public class Test { ... -
java之继承
2010-01-13 20:03 1067如下面代码: public class Test { ... -
java内部类
2010-01-13 10:46 1096如下面代码: public class OuterIn ... -
java基础之"=="操作符
2010-01-12 19:44 1077如下: public class Test { ... -
java之动态绑定和静态绑定
2010-01-11 11:22 1333如下面代码: package cn.lifx.test; ... -
java之String变量和“==”操作符(2)
2010-01-11 10:51 1320如下面代码: public class StringTest ... -
java之String变量和“==”操作符(1)
2010-01-06 16:35 1193先看下面的代码,有助于后面的理解。 public cl ... -
汉字截取问题
2010-01-04 15:01 1225如下 public class Test { p ... -
求几个整数的最小公倍数和最大公约数
2009-12-31 16:23 1389下面的方法是用递归解决的。如求几个整数的最小公倍数 ... -
java之final, finally, finalize的区别
2009-12-25 15:43 14941. final 用于声明属性,方法和类,分别表示属性不 ... -
java之抽象类和接口
2009-12-25 11:15 1178如下代码,是使用接口时需要注意的问题。 public int ... -
java之try与finally语句(2)
2009-12-25 11:07 1386接上一篇,跟上一篇代码差不多,就是修改了a的值为double类 ... -
java之try与finally语句
2009-12-24 21:42 1511如下面的代码,结果就不解释了。 public clas ... -
java的静态方法和非静态方法
2009-12-24 11:11 1271如下面的代码 public class Test { ... -
接着看java线程问题
2009-12-18 19:26 1015接上一篇,继续看看java线程问题。当然,下面的程序或者说用法 ...
相关推荐
xml文档的解析,对初学习者来说是一个很好的借鉴
一个java读取XML文件的小例子,适合新人学习XML解析
然而由于使用DOM解析器的时候需要处理整个XML文档,所以对性能和内存的要求比较高,尤其是遇到很大的XML文件的时候。由于它的遍历能力,DOM解析器常用于XML文档需要频繁的改变的服务中。 SAX解析器采用了基于事件的...
好了,通过第三章的学习,我们已经了解了一些XML和DTD的基本术语,但是我们还不知道怎样来写这些文件,需要遵循什么样的语法,在下一章,将重点介绍有关撰写XML和DTD文档的语法。 第四章 XML语法 七.DTD的语法...
LINQ初体验之LINQ to Object 1 一步一步学Linq to sql(一):预备知识 4 一步一步学Linq to sql...四、加载和解析XML内容 90 六、遍历内存中的XML文档 90 七、修改 XML文档 92 使用linq to xml 快速创建自己的Rss 93
LINQ教程 1 LINQ初体验之LINQ to Object 1 一步一步学Linq to sql(一):预备知识 3 ...四、加载和解析XML内容 89 六、遍历内存中的XML文档 89 七、修改 XML文档 91 使用linq to xml 快速创建自己的Rss 92
LINQ初体验之LINQ to Object 1 一步一步学Linq to sql(一):预备知识 4 一步一步学Linq to sql...四、加载和解析XML内容 90 六、遍历内存中的XML文档 90 七、修改 XML文档 92 使用linq to xml 快速创建自己的Rss 93
LINQ初体验之LINQ to Object 1 一步一步学Linq to sql(一):预备知识 2 一步一步学Linq to sql...四、加载和解析XML内容 42 六、遍历内存中的XML文档 42 七、修改 XML文档 43 使用linq to xml 快速创建自己的Rss 44
What‘s LINQ? Language Integrated Query 是也。说得再明白一些,这是编程语言的一种新特性,能够...四、加载和解析XML内容 90 六、遍历内存中的XML文档 90 七、修改 XML文档 92 使用linq to xml 快速创建自己的Rss 93
What‘s LINQ? Language Integrated Query 是也。说得再明白一些,这是编程语言的一种新特性,能够...四、加载和解析XML内容 90 六、遍历内存中的XML文档 90 七、修改 XML文档 92 使用linq to xml 快速创建自己的Rss 93
What‘s LINQ? Language Integrated Query 是也。说得再明白一些,这是编程语言的一种新特性,能够...四、加载和解析XML内容 90 六、遍历内存中的XML文档 90 七、修改 XML文档 92 使用linq to xml 快速创建自己的Rss 93
本书集实用性、思想性、趣味性于一体,内容共分为技术基础总结、系统架构设计思想及项目实战解析三部分,随书所附光盘收录大量实例代码及独家披露的商业系统,供读者参考学习。 本书适合于.NET初、中级开发人员参考...
本书集实用性、思想性、趣味性于一体,内容共分为技术基础总结、系统架构设计思想及项目实战解析三部分,随书所附光盘收录大量实例代码及独家披露的商业系统,供读者参考学习。 本书适合于.NET初、中级开发人员参考...
8.8.2 struts.xml文件配置出错 8.9 精彩回顾 第9章 庖丁解牛 ——揭密Struts2高级技术 9.1 本章学习任务 9.1.1 本章知识体系 9.1.2 实例开发任务 9.2 OGNL表达式语言 9.2.1 认识OGNL 9.2.2 Struts2框架中的OGNL ...
以下是我的web.xml文件: <?xml version="1.0" encoding="UTF-8"?><web-app version="2.4" xmlns="http://java.sun.com/xml/ns/ ... by cycy80 2008-02-03 回复 (2) Ext+spring+dwr查询数据库的值无 ... 各位大哥,...
n 高级特性-自定义PropertySourceFactory实现解析yaml配置文件 n 源码分析-BeanFactory类视图和常用工厂说明 n 源码分析-AnnotationConfigApplicationContext的register方法 n 源码分析-...
1.2 如何更好地学习Web安全 4 第2章 深入HTTP请求流程 6 2.1 HTTP协议解析 6 2.1.1 发起HTTP请求 6 2.1.2 HTTP协议详解 7 2.1.3 模拟HTTP请求 13 2.1.4 HTTP协议与HTTPS协议的区别 14 2.2 截取HTTP请求 15 2.2.1 ...
\14.1.3 使用DOM写XML文件 352 \14.2 SAX 354 \14.3 基于流的XML API 359 \14.4 小结 365 \第15章 模型/视图结构 366 \15.1 模型/视图结构与MVC设计 \15.1 模式 366 \15.1.1 模型 366 \15.1.2 视图 367 \...
\14.1.3 使用DOM写XML文件 352 \14.2 SAX 354 \14.3 基于流的XML API 359 \14.4 小结 365 \第15章 模型/视图结构 366 \15.1 模型/视图结构与MVC设计 \15.1 模式 366 \15.1.1 模型 366 \15.1.2 视图 367 \15.1.3 代理...
每个范例后面均有扩展学习,在学习范例应用的同时延伸思考。汲取专家经验,指引入门捷径。 移动网络设备(MID,Mobile Internet Device)的发展趋势锐不可当,其中以智能手机最受瞩目。 《Google Android SDK开发...