如何解析这样的xml

问题描述

因为要实现联动,我想把对应Second放入数组,data放入集合,如何用pull实现解析?还是有更好的处理方式?<sms> <First typeName="生活祝福"> <Second typeName="生日"> <data>我谨代表国务院、党到来。</data> <data>嘿~~~务,感谢您的参与。谨祝您“生日快乐”。</data> </Second> <Second typeName="结婚"> <data>洋溢在喜悦的天堂,披着闪闪月光,堪叹:只羡鸳鸯不羡仙。</data> <data>今天,我带着喜乐意合爱不息;愿上帝祝福你们的爱比高天更高更长,你们的情比深海更深更广! </data> <data>婚姻所有的福,地里所藏的福,都赐给你们和你们的家庭!</data> </Second> <Second typeName="乔迁"> <data>蜜蜂一群可爱的小燕;蚂蚁挖了新洞,备了一仓过冬的粮食;你也搬新居了,一定能够赚取大把的钞票。</data> </Second> </First> <First typeName="西方节日"> <Second typeName="情人节"> <data>噢天,我没回家,你以为我去鬼混,别烦我,由于那时没有短信。所以我只好在一千年后告诉你,我去买花了。</data> <data>的脸;你在心里乐开了颜;短信字里行间充满了爱,老远处跑来,勾画出一对想你的红眼眼。</data> <data>离越远我的爱越浓。盼我们的情人节永远属于我们,愿我们的情人节永远快乐,愿我们情有所属。</data> </Second> <Second typeName="妇女节"> <data>人是一个宝库。但你比钻石和宝库更珍贵!你的节日里祝你永远青春美丽!</data> </Second></First><sms> 问题补充:timmyraynor 写道

解决方案

你可以使用DOM或者SAX解析,DOM是将整个XML读入内存然后进行解析,楼上所说的dom4j非常还用先用 document.getRootElement()取到根节点,然后用elementIterator()迭代出该元素的子节点,很简单的。SAX是基于事件模型的,他不是将XML全部读入内存,查看一下API,解析也不是很难。如果硬件资源比较充足,建议使用dom4j,相反的话使用SAX解析XML。望对您有帮助
解决方案二:
那就看你的需要了,因为你的每个data节点之间的关系是等价的,也就是说,从层次上应该是 Sms |_First |_data |_data ....这样的关系,所以,建议用数组一类的存储了
解决方案三:
用dom4j先获取根节点: Element root = document.getRootElment()//这个函数记不清了,反正就是从文件获取根然后获取根节点下的 First 和 Second然后每个节点中的数据取出来,都是String类,做个类型转换就好了
解决方案四:
解析XML可以用jDom或者dom4j

时间: 2024-09-20 17:43:13

如何解析这样的xml的相关文章

java-Java接收一个有关地图的XML,如何解析这个地图XML文件并把它显示在一个窗口上?

问题描述 Java接收一个有关地图的XML,如何解析这个地图XML文件并把它显示在一个窗口上? 请问,如果Myeclipse接收了一个XML文件,里面是关于绘制地图的点,线,位置坐标等的信息, 那该如何解析这个XML?最终目的是想把描述地图的XML文件能显示出一幅地图来? 有没有关于显示地图方面的代码参考,或者能指点一下思路,谢谢 解决方案 处理xml格式的文件或者文本字符串的话,需要使用java的xml处理工具如jdom,或dom4j都可以的. 其实本质上就是对xml的节点进行解析获取数据信息

java-xstream用注解怎么解析复杂的xml

问题描述 xstream用注解怎么解析复杂的xml <Student> <id>1</id> <name>张三</name> <address>上海市</address> <tel>1234</tel> <family> <item> <ids>1</ids> <names>姐姐</names> <ages>12&l

jsp如何解析远程的xml

问题描述 有谁知道,jsp如何解析远程的xml,谢谢了 解决方案 解决方案二:先把xml取过来,就和在本地解析一样了.解决方案三:怎么取啊解决方案四:弄成文件或者流的方式你的疑问是如何远程去取XML对吧.不知道这个远程目标对象是什么?一般能用网络转化成流的方式去读到解决方案五:有没有具体的代码啊,我对这些不是很懂,谢谢了解决方案六:使用WEBSERVER参考:xfire解决方案七:先读取然后再解析把,搂住的问题可能是要怎样去远程读取xml把解决方案八:远程的xml资源读取,应该由远程的那个服务器

Android中使用pull解析器操作xml文件的解决办法_Android

一.使用Pull解析器读取XML文件 除了可以使用SAX或DOM解析XML文件之外,大家也可以使用Android内置的Pull解析器解析XML文件. Pull解析器是一个开源的java项目,既可以用于android,也可以用于JavaEE.如果用在javaEE需要把其jar文件放入类路径中,因为Android已经集成进了Pull解析器,所以无需添加任何jar文件.android系统本身使用到的各种xml文件,其内部也是采用Pull解析器进行解析的. Pull解析器的运行方式与SAX 解析器相似.

Android开发之使用Pull解析器生成XML文件

有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使用pull解析器生成XML文件,这里推荐大家使用Pull解析器. 相关代码如下: public static String writeXML(List<Person> persons, Writer writer){     XmlSerializer serializer = Xml.newSe

js解析文本、xml格式、json数据与ajax和servlet交互及乱码解决

1,在ajax与后台的交互中经常会出现乱码, 解决办法: 在后台获取数据的时候要改变其编码 //获取jsp页面传递过来的userName    代码如下 复制代码 String user= request.getParameter("userName");  //使用String来改变获取到的字符集编码  String userid = new String(user.getBytes("iso8859-1"),"GBK");    2,XMLH

《Python Cookbook(第3版)中文版》——6.3 解析简单的XML文档

6.3 解析简单的XML文档 6.3.1 问题 我们想从一个简单的XML文档中提取出数据. 6.3.2 解决方案 xml.etree.ElementTree模块可用来从简单的XML文档中提取出数据.为了说明,假设想对Planet Python(http://planet.python.org )上的RSS订阅做解析并生成一个总结报告.下面的脚本可以完成这个任务: from urllib.request import urlopen from xml.etree.ElementTree impor

dom解析和生成XML文件

使用这种方式解析时,需要使用node.getNodeType() == Node.ELEMENT_NODE判断结点是否为元素结点,否则会输出很多#text(结点前有空格存在的原因). 完成的XML解析和生成代码如下: package test; import java.io.*; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.t

java中采用Pull解析器对XML文件进行解析

一.基本介绍 Android中极力推荐xmlpull方式解析xml. xmlpull不仅可用在Android上同样也适用于javase,但在javase环境中需自己获取xmlpull所依赖的类库,kxml2-2.3.0.jar,xmlpull_1_1_3_4c.jar. jar包下载网址http://www.xmlpull.org/http://kxml.sourceforge.net/     二.例子 读取到xml的声明返回数字0 START_DOCUMENT; 读取到xml的结束返回数字1

Android开发8——利用pull解析器读写XML文件

  一.基本介绍 对XML解析有SAX和DOM等多种方式,Android中极力推荐xmlpull方式解析xml.xmlpull不仅可用在Android上同样也适用于javase,但在javase环境中需自己获取xmlpull所依赖的类库,kxml2-2.3.0.jar,xmlpull_1_1_3_4c.jar.   jar包下载网址http://www.xmlpull.org/http://kxml.sourceforge.net/   二.例子 读取到xml的声明返回数字0 START_DOC