<?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文档(简单实例)&mdash;&mdash;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 ...
随机推荐
-
Java学习笔记(基本数据类型和变量命名规则)
java基本数据类型 变量 1.变量就是可变的量. 2.常量就是不可变的量. 3.字面量:Java的变量和常量中存放的具体的数据成为字面量. 变量 命名规则: (1)首字母是英文字母.$或下划线,由字 ...
-
[转]Android访问网络,使用HttpURLConnection还是HttpClient
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/12452307 最近在研究Volley框架的源码,发现它在HTTP请求的使用上比较有 ...
-
《剑指offer》 相应 在线测试地址
<剑指Offer>面试题集收录汇总 面试题1 赋值运算符函数 不适合在线模式 面试题2 实现Singleton模式 不适合在线模式 面试题3 二维数组中的查找 已收录 面试题4 替换空格 ...
-
CSS学习(页外引用还不懂)
CSS的语法结构为 选择符 {属性:值:} Selector {Property : Value:} 选择符:通配 *{....} , 元素 body{....} .h1{....}.p ...
-
/usr/lib/python2.7/site-packages/requests/__init__.py:80: RequestsDependencyWarning: urllib3 (1.22) or chardet (2.2.1) doesn&#39;t match a supported version! RequestsDependencyWarning)
[root@iZwz9bhan5nqzh979qokrkZ ~]# ansible all -m ping /usr/lib/python2.7/site-packages/requests/__in ...
-
Pi的计算
百度百科 圆周率用希腊字母 π(读作pài)表示,是一个常数(约等于3.141592654),是代表圆周长和直径的比值.它是一个无理数,即无限不循环小数.在日常生活中,通常都用3. ...
-
guava文档API制作成chm文件
将HTML制作成CHM.EXE需要用到一个小工具“HUGECHM”,将HTML打包成CHM文件 1.下载guava的最新的版本,网址:https://github.com/google/guava/w ...
-
75.VS2013和opencv3.1.0开发环境配置
首先要做的就是 开发环境配置,具体过程如下: Step 1:OpenCV环境变量配置 我的电脑--->属性--->高级系统设置--->高级--->环境变量--->系统变量 ...
-
使用layer.js注意事项
一.使用时,将layer整个文件夹放置你站点的任何一个目录,layer.js 开发版,layer.min.js 压缩版,引入其中一个即可.css等其它文件无需引入. 二.如果您的js引入是通过合并处理 ...
-
Codeforces 1105D(双层广搜)
要点 题意:可以拐弯,即哈密顿距离 注意不可以直接一个一个搜,这过程中会把下一轮的标记上,导致同一轮的其它点没能正常完成应有的搜索 因此采用双层广搜,把同一轮先都出队列再的一起搜 #include & ...