dom解析xml
<?xml version="1.0" encoding="UTF-8"?>
<ShowList>
<Movie>
<name>非常完美</name>
<Poster>perfect</Poster>
<Director>阴萌</Director>
<Actor>范冰冰</Actor>
<Price>100</Price>
<Type>电影</Type>
<Schedule>
<Item>09:00</Item>
<Item>13:00</Item>
</Schedule>
</Movie>
<Movie>
<name>倒塔</name>
<Poster>dota</Poster>
<Director>冰蛙</Director>
<Actor>斧王</Actor>
<Price>50</Price>
<Type>游戏</Type>
<Schedule>
<Item>09:00</Item>
<Item>13:00</Item>
</Schedule>
</Movie>
</ShowList>
这是xml文件
getElementsByTagName()这个方法是得到xml文件里的某个节点
(重要 Node是抽象节点 element是实际的节点 不如movie就是抽象节点 他里面有很多子节点,提到movie也不知道要的是movie里的那个属性, 而 element则是实际的节点提到time,就会在xml文件中找到具体的时间,所以,要找抽象节点的话 就要用Node来接收,实际节点就用element接收)
前三部是固定格式括号里
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse("src/ShowList.xml");
想得到xml文件里的节点 如果字节不是一个有可能是多个的话,那么就用集合nodelist
从文件里读的信息。所以是文件名。getelementbytagname()方法
Nodelist list=doc。getelementbytagname(“Movie”);
因为是集合,所以要遍历得到你想要的第i个movie节点
for(int i=0;i<list.length();i++){
Node point=list.item(i);
想要得到movie里的其他节点也就是得到movie里的所有子节点
Element element =(Element)point;
比如得到了Schedule的节点,就用下面的方法,但是这个读不出信息,只是把这个节点给了ele
这句话的意思是在movie所有字节点里找到第一个Schedule (如果是item(1)那么就是找到movie所有字节点里的第二个Schedule)
ele就是movie所有字节点里的第一个Schedule
Node ele=element.getelementbytagname("Schedule").item(0);
和上面的point一样因为都是抽象的节点所以用的Node
这个Schedule节点下面还有子节点Item,要得到item就只能先得到他子节点所有的信息 得到所有信息之后才能在这一堆信息里找你所需要的信息
ele2是ele下面所有的item子节点
Element ele2=(Element)ele;
得到所有信息之后需要遍历 ,这句话是找到name这个节点之后得到他的文本值(用方法 .getTextContent();)把得到的值赋值给elename
从所有的item节点中找到第一个name节点赋值给elename
String elename = ele2.getElementsByTagName("name").item(0)
.getTextContent();
得到item这个节点的个数
int length = ele2.getElementsByTagName("Item").getLength();
for (int j = 0; j < 2; j++) {
String elename = ele.getElementsByTagName("name").item(0)
.getTextContent();
String elePoster = ele.getElementsByTagName("Poster").item(0)
.getTextContent();
String eleDirector = ele.getElementsByTagName("Director").item(
0).getTextContent();
String eleActor = ele.getElementsByTagName("Actor").item(0)
.getTextContent();
String elePrice = ele.getElementsByTagName("Price").item(0)
.getTextContent();
String eleType = ele.getElementsByTagName("Type").item(0)
.getTextContent();
String eleItem = ele.getElementsByTagName("Item").item(j)
.getTextContent();
k++;
System.out.println(k + "\t\t" + elename + "\t\t" + elePoster
+ "\t\t" + eleDirector + "\t\t" + eleActor + "\t\t"
+ eleType + "\t\t" + elePrice + "\t\t" + eleItem);
重点 在每一次要找子节点时,首先要做的就是把这个节点的所有子节点全部找到(Element ele = (Element) point;)
之后才能用 ele。getelementbytagname(" ")找到你所需要的字节
找到movie下面的item节点???
首先找到所有的movie节点,(集合) doc是文件
Nodelist movielist=doc。getelementbytagename("movie");
得到第i个movie节点(因为是抽象节点所以用Node)
point为第i个movie节点
Node point=movie。item(i);
获取第i个movie节点的所有子节点
Element ele = (Element) point;
找到movie所有子节点之后要得到movie的第一个子节点(Schedule)
Node ele2=ele。getelementbytagname(“Schedule”)。item(0);
得到Schedule子节点之后就可以得到所有item节点了
ele3为所有的item节点
Element ele3=(Element)ele2;
在逐个得到所有的item节点之前,先要知道有多少个item节点,求出所有item节点的长度
int length=ele3。getelementbytagname(“item”)。length();
for(int i=0;i<length;i++){
在movie的所有子节点里找是否有item
String aaaaaa=ele.getelementbytagname("item").item(i).getTextcontent();
system。out.println(aaaaaa);
}
}
dom解析xml的更多相关文章
- Android之DOM解析XML
一.DOM解析方法介绍 DOM是基于树形结构的节点或信息片段的集合,允许开发人员使用DOM API遍历XML树,检索所需数据.分析该结构通常需要加载整个文档和构造树形结构,然后才可以检索和更新节点信息 ...
- JAVA中使用DOM解析XML文件
XML是一种方便快捷高效的数据保存传输的格式,在JSON广泛使用之前,XML是服务器和客户端之间数据传输的主要方式.因此,需要使用各种方式,解析服务器传送过来的信息,以供使用者查看. JAVA作为一种 ...
- 简单谈谈dom解析xml和html
前言 文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.html,xml都是基于这个模型构造的.这也是一个W3C推出的标准.j ...
- Java从零开始学四十二(DOM解析XML)
一.DOM解析XML xml文件 favorite.xml <?xml version="1.0" encoding="UTF-8" standalone ...
- xml语法、DTD约束xml、Schema约束xml、DOM解析xml
今日大纲 1.什么是xml.xml的作用 2.xml的语法 3.DTD约束xml 4.Schema约束xml 5.DOM解析xml 1.什么是xml.xml的作用 1.1.xml介绍 在前面学习的ht ...
- python 解析XML python模块xml.dom解析xml实例代码
分享下python中使用模块xml.dom解析xml文件的实例代码,学习下python解析xml文件的方法. 原文转自:http://www.jbxue.com/article/16587.html ...
- Java解析XML文档(简单实例)——dom解析xml
一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object ...
- xml--通过DOM解析XML
此文章通过3个例子表示DOM方式解析XML的用法. 通过DOM解析XML必须要写的3行代码. step 1: 获得dom解析器工厂(工作的作用是用于创建具体的解析器) step 2:获得具体的dom解 ...
- POPTEST老李分享DOM解析XML之java
POPTEST老李分享DOM解析XML之java Java提供了两种XML解析器:树型解释器DOM(Document Object Model,文档对象模型),和流机制解析器SAX(Simple ...
- 使用DOM解析xml文件
使用DOM解析xml文件 要解析的xml文件如下: <?xml version="1.0" encoding="UTF-8"?> <Langu ...
随机推荐
- Tomcat服务启动成功,但访问index.jsp出错 (jspInit)
本文引用自 --> http://zhouhaitao.iteye.com/blog/1164736 Tomcat服务启动成功,但访问index.jsp出错 环境:Tomcat6 + jdk6 ...
- 破解excel密码保护
破解excel密码保护 录制一个新宏.内容如下.保存后运行,点几次确定,过一分钟还会再弹出来,再点确定,然后就好了. Public Sub AllInternalPasswords() ' Break ...
- jQuery停止动画——stop()方法的使用
很多时候需要停止匹配元素正在进行的动画,比如,当鼠标选入元素时显示菜单,鼠标离开时隐藏下拉菜单,如果鼠标移入移出过快的话就会导致动画效果与鼠标的动作不一致的情况,此时stop()就派上用场了. sto ...
- 查看Windows服务器登录日志
本文以Windows7系统为例:[控制面板]——[管理工具]——[查看事件日志]——[Windows日志]——[安全].此时在视图窗口应该可以看到登录信息了,如果需要知道具体信息那么可以点击某条记录或 ...
- Visio 2007中进行数据库建模时如何显示字段类型以及概念名称
关于在VISIO中进行数据库建模时如何显示字段类型,以及注释的 1 如何显示字段类型: 在visio菜单上--->点击数据库--->选项--->文档 打开后选择表这项,在上 ...
- java中运算符的优先级
所谓优先级,就是在表达式中的运算顺序.Java 中常用的运算符的优先级如下表所示: 级别为 1 的优先级最高,级别 11 的优先级最低.譬如,x = 7 + 3 * 2 得到的结果是 13 &quo ...
- Android开发学习---使用XmlPullParser解析xml文件
Android中解析XML的方式主要有三种:sax,dom和pull关于其内容可参考:http://blog.csdn.net/liuhe688/article/details/6415593 本文将 ...
- ubuntu-apache如何解决跨域资源访问
参考:http://blog.csdn.net/emily201314/article/details/52877277 步骤1 #打开apache的headers模块 sudo a2enmod he ...
- No edit session in the progress
运行环境:开发环境:Windows7旗舰版64bit.VisualStudio2008 With SP1.ArcEngine10.0.NetFrameWork4.0.IIS7和C#开发语言. 问题描述 ...
- DBlink与同义词
DBLink就是数据库链接,而同义词就已经具体到某个用户下的表了 原文链接:http://www.linuxidc.com/Linux/2013-01/77579.htm 这里所需要的信息: 从MM库 ...