xml解析

jaxp解析XML之DOM解析

假如想象 提交于 2020-03-24 06:32:31
XML解析技术 XML解析方式分为三种一种是DOM解析一种是SAX解析 DOM思想:将整个xml加载入内存,形成围挡对象,所有对xml操作都是对内存中节点对象进行, DOM是官方xml解析标准,同时支持解析其他各种语言 SAX解析方式的出现,因为DOM的解析方式需要对文档进行加载入内存,当文档较大的时候比较消耗资源,这时候就出现了SAX解析 SAX思想:一边解析,一边处理,一边释放资源 在JDK6中又引入了另一种StAX解析方式 是一种拉模式的xml解析方式,而SAX是一种推模式XML解析方式 推模式由服务器端为主导,向客户端发送数据,push模式 拉模式由客户端为主导,主动地向服务器申请数据,pull模式 XML解析开发包 JAXP sun官方推出的解析实现方式同时支持三种解析方式 DOM4j 开源社区框架,支持DOM解析方式 XML PULL 安卓移动设备内置,支持XML PULL解析方式 DOM支持回写 会将整个XML载入内存,以树形结构方式存储,XML比较复杂的时候,或者当你需要随机处理文档中数据的时候不建议使用 SAX/STAX 相比DOM是一种更为轻量级的方案 采用串行方法读取---文件输入流(字节,字符)读取方式 不支持过程中修改XML数据 编程较为复杂 具体使用哪种解析方式要根据实际情况来判断 1,应用程序是否必须对数据进行修改,并作为XML文档输出

Java中四种XML解析技术

爷,独闯天下 提交于 2020-03-24 06:32:19
在平时工作中,难免会遇到把 XML 作为数据存储格式 。 面对目前种类繁多的解决方案,哪个最适合我们呢?在这篇文章中,我对这四种主流方案做一个不完全评测,仅仅针对遍历 XML 这块来测试,因为遍历 XML 是工作中使用最多的(至少我认为) 。 测试环境:   AMD 毒龙1.4G OC 1 . 5G、256M DDR333、Windows2000 Server SP4、Sun JDK 1 . 4.1+Eclipse 2.1+Resin 2.1 . 8,在 Debug 模式下测试。  XML 文件格式如下: <?xml version="1.0" encoding="GB2312"?> <RESULT> <VALUE>   <NO>A1234</NO>   <ADDR>四川省XX县XX镇XX路X段XX号</ADDR>  </VALUE>  <VALUE>   <NO>B1234</NO>   <ADDR>四川省XX市XX乡XX村XX组</ADDR>  </VALUE> </RESULT>  测试方法:   采用 JSP 端调用Bean(至于为什么采用JSP来调用,请参考: http://blog.csdn.net/rosen/archive/2004/10/15/138324.aspx ),让每一种方案分别解析10K 、 100K、1000K、10000K的 XML 文件

关于android/java中xml的解析

牧云@^-^@ 提交于 2020-03-24 06:08:36
Http 数据组织方式 HTTP 网络传输中的数据组织方式有三种 1、Html 2、Xml 3、Json XML 称为可扩展标记语言,它与 HTML 一样,都是 SGML (标准通用标记语言), XML 是 Internet 环境中跨平台的,依赖于内容技术,是当前处理结构化文档信息的有力工具,可扩展标记语言 XML 是一种简单的数据存储语言,使用一系列简单的标记描述数据。 XML 结构示意图: <?xml version=”1.0” encoding=”UTF-8”> <persons> <person id=”23”> <name>jack</name> <age>30</age> </person> <person id=”20”> <name>rose</name> <age>25</age> </person> <persons> XML 的结构解析如下 1、节点 2、元素 3、属性和属性值 由于 XML 的扩展性强,致使它需要有稳定的基础规则来支持扩展, 该语法规则是: 1、开始和结束标签匹配 2、嵌套标签不能互相嵌套 3、区分大小写 Android 中,解析 Xml 数据的三种方式: 1、DOM ( org.w3c.dom ) “文档对象模型”方式,解析完的 Xml 将生产一个树状的结构对象 2、SAX(org.xml.sax) SimpleAPI for XML

Android中xml文件的解析

时光怂恿深爱的人放手 提交于 2020-03-24 06:05:16
需要有一个解析工厂,SAXParserFactory,通过解析工厂来获得解析器XMLReader,然后给解析器配置ContentHandler,最后通过parse来启动解析,其中有以下主要的方法: startDocument:当遇到文档的时候就触发这个事件 调用这个方法 可以在其中做些预处理工作。 startElement: (String namespaceURI,String localName,String qName,Attributes atts)当遇开始标签的时候就会触发这个方法。 endElement(String uri,String localName,String name):当遇到结束标签时触发这个事件,调用此法可以做些善后工作。 charachers(char [] ch,int start,int length):当遇到xml内容时触发这个方法,用new String(ch,start,length)可以接受内容。 下面通过一个例子来说一下,之前做的版本更新的时候用过的,通过从服务器上获取当前版本信息文件,解析后和当前软件版本号比较来判断是否有新版本发布,这里只用到下载xml文件并解析。 下载部分代码: 1 public class HttpDownloader { 2 private URL url = null; 3 /** 4 * 根据URL下载文件

javaweb学习总结十二(JAXP对XML文档进行SAX解析)

[亡魂溺海] 提交于 2020-03-24 05:35:22
一:JAXP使用SAX方式解析XML文件 1:dom解析与sax解析异同点 2:sax解析特点 二:代码案例 1:xml文件 1 <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 <students> 3 <student> 4 <name sid="111">李四</name> 5 <age>23</age> 6 <gender>男</gender> 7 </student> 8 <student> 9 <name sid="222">张三</name> 10 <age>21</age> 11 <gender>女</gender> 12 </student> 13 </students> 2:测试主体部分 1 @Test 2 public void testParseXml() throws ParserConfigurationException, 3 SAXException, IOException { 4 // 1:获取解析器工厂 5 SAXParserFactory factory = SAXParserFactory.newInstance(); 6 // 2:获取解析器 7 SAXParser parser = factory.newSAXParser(); 8 // 3:获取读取器 9

Java中对xml的解析

一世执手 提交于 2020-03-24 03:48:20
Java 中对 xml 的解析 1.Dom4j Dom 解析原理: xml 解析器一次性将 xml 文档加载到内存中,然后在内存中构建一颗 Document 对象树。在通过 Document 对象得到树上的节点对象,通过节点对象操作文档内容。 Dom4J 常用的对象: SAXReader :读取 xml 文件到 Document 树结构文件对象 Document :是一个 xml 文档对象树,类比 Html 文档对象。 Element :元素节点。通过 Document 对象可以查找单个元素 使用步骤: ( 导入 Dom4J.jar 包 dom4j-1.6.1.jar ) 1. 创建 SaxReader 解析器 SAXReader Reader = new SAXReader(); 2. 通过 read 方法获得 Document 对象 Document document = Reader.read("conf/student.xml"); 3. 获得根节点 Element rootEle = document.getRootElement(); 4.4. 通过迭代器遍历 xml 文档 Iterator it = rootEle.elementIterator(); while (it.hasNext()) { Element stusEle = (Element) it.next

XML Namespace (xmlns) 属性

这一生的挚爱 提交于 2020-03-23 12:14:04
http://www.w3school.com.cn/xml/xml_namespaces.asp XML Namespace (xmlns) 属性 XML 命名空间属性被放置于元素的开始标签之中,并使用以下的语法: xmlns:namespace-prefix="namespaceURI" 当命名空间被定义在元素的开始标签中时,所有带有相同前缀的子元素都会与同一个命名空间相关联。 注释:用于标示命名空间的地址不会被解析器用于查找信息。其惟一的作用是赋予命名空间一个惟一的名称。不过,很多公司常常会作为指针来使用命名空间指向实际存在的网页,这个网页包含关于命名空间的信息。 请访问 http://www.w3.org/TR/html4/ 。 统一资源标识符(Uniform Resource Identifier (URI)) 统一资源标识符是一串可以标识因特网资源的字符。最常用的 URI 是用来标示因特网域名地址的统一资源定位器(URL)。另一个不那么常用的 URI 是统一资源命名(URN)。在我们的例子中,我们仅使用 URL。 默认的命名空间(Default Namespaces) 为元素定义默认的命名空间可以让我们省去在所有的子元素中使用前缀的工作。 请使用下面的语法: xmlns="namespaceURI" 这个 XML 文档携带着某个表格中的信息: <table xmlns=

在服务器端生成 Word 2007 文档

柔情痞子 提交于 2020-03-22 08:49:20
直到现在,编写和部署服务器端的能够读取、修改和生成 Microsoft ® Office 应用程序所使用的文档的应用程序仍然是个挑战。Microsoft Word、Excel ® 和 PowerPoint ® 所用的较早的二进制格式是在 1997 年开始使用的,直到在 Office 2003 版中仍然将其作为默认文件格式。然而,这种二进制的文件格式已被证明因过于棘手而不便使用。大多数读写 Office 文档的生产应用程序都通过承载 Office 应用程序的对象模型来达到此目的。 使用应用程序(如 Word 或 Excel)的对象模型的应用程序和组件,在桌面机上的运行状况远远好于在服务器端环境中。任何曾花费时间编写额外的基础代码来让 Office 桌面应用程序在服务器上可靠运行的人都会告诉您,那绝对不是理想的解决方案。这是因为,Word 和 Excel 之类的 Office 桌面应用程序的设计初衷从来就不是使其在服务器上运行,每当遇到需要人工干预的频繁的对话时,就需要用一个自定义实用程序来终止并重新启动它们。 对于服务器端而言,无需采用承载 Office 应用程序的对象模型的方法即可读写 Office 文档的能力已变为极需要的趋势。Office 2000 和 Office 2003 都引入了一些模型化的功能,可使用 XML 来创建 Excel 工作簿和 Word 文档

Ganglia 原理

谁都会走 提交于 2020-03-21 04:54:12
原理 Ganglia 项目是由加州大学发起的,现在已经成为一个应用非常广泛集群监控软件。可以监视和显示集群中的节点的各种状态信息,比如如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,同时可以将历史数据以曲线方式通过php页面呈现。同时具有很好的扩展性,允许用户加入自己所要监控的状态信息。 2.1 ganglia工作原理 图 1 Ganglia整体结构图 Ganglia 包括如下几个程序,他们之间通过XDL(xml的压缩格式)或者XML格式传递监控数据,达到监控效果。集群内的节点,通过运行gmond收集发布节点状 态信息,然后gmetad周期性的轮询gmond收集到的信息,然后存入rrd数据库,通过web服务器可以对其进行查询展示。 Gmetad 这个程序负责周期性的到各个datasource收集各个cluster的数据,并更新到rrd数据库中。 可以把它理解为服务端。 Gmond 收集本机的监控数据,发送到其他机器上,收集其他机器的监控数据,gmond之间通过udp通信,传递文件格式为xdl。收集的数据供Gmetad读取,默认监听端口8649 ,监听到gmetad请求后发送xml格式的文件。可以把它理解为客户端。 web front-end 一个基于web的监控界面,通常和Gmetad安装在同一个节点上(还需确认是否可以不在一个节点上

XML 语法规则

天大地大妈咪最大 提交于 2020-03-21 02:50:51
XML 的语法规则很简单,且很有逻辑。这些规则很容易学习,也很容易使用。 所有 XML 元素都须有关闭标签 在 HTML,经常会看到没有关闭标签的元素: <p>This is a paragraph <p>This is another paragraph 在 XML 中,省略关闭标签是非法的。所有元素都 必须 有关闭标签: <p>This is a paragraph</p> <p>This is another paragraph</p> 注释: 您也许已经注意到 XML 声明没有关闭标签。这不是错误。声明不属于XML本身的组成部分。它不是 XML 元素,也不需要关闭标签。 XML 标签对大小写敏感 XML 元素使用 XML 标签进行定义。 XML 标签对大小写敏感。在 XML 中,标签 <Letter> 与标签 <letter> 是不同的。 必须使用相同的大小写来编写打开标签和关闭标签: <Message>这是错误的。</message> <message>这是正确的。</message> 注释: 打开标签和关闭标签通常被称为开始标签和结束标签。不论您喜欢哪种术语,它们的概念都是相同的。 XML 必须正确地嵌套 在 HTML 中,常会看到没有正确嵌套的元素: <b><i>This text is bold and italic</b></i> 在 XML 中,所有元素都 必须