<?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的更多相关文章

  1. Android之DOM解析XML

    一.DOM解析方法介绍 DOM是基于树形结构的节点或信息片段的集合,允许开发人员使用DOM API遍历XML树,检索所需数据.分析该结构通常需要加载整个文档和构造树形结构,然后才可以检索和更新节点信息 ...

  2. JAVA中使用DOM解析XML文件

    XML是一种方便快捷高效的数据保存传输的格式,在JSON广泛使用之前,XML是服务器和客户端之间数据传输的主要方式.因此,需要使用各种方式,解析服务器传送过来的信息,以供使用者查看. JAVA作为一种 ...

  3. 简单谈谈dom解析xml和html

    前言 文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.html,xml都是基于这个模型构造的.这也是一个W3C推出的标准.j ...

  4. Java从零开始学四十二(DOM解析XML)

    一.DOM解析XML xml文件 favorite.xml <?xml version="1.0" encoding="UTF-8" standalone ...

  5. 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 ...

  6. python 解析XML python模块xml.dom解析xml实例代码

    分享下python中使用模块xml.dom解析xml文件的实例代码,学习下python解析xml文件的方法. 原文转自:http://www.jbxue.com/article/16587.html ...

  7. Java解析XML文档(简单实例)——dom解析xml

      一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object ...

  8. xml--通过DOM解析XML

    此文章通过3个例子表示DOM方式解析XML的用法. 通过DOM解析XML必须要写的3行代码. step 1: 获得dom解析器工厂(工作的作用是用于创建具体的解析器) step 2:获得具体的dom解 ...

  9. POPTEST老李分享DOM解析XML之java

    POPTEST老李分享DOM解析XML之java   Java提供了两种XML解析器:树型解释器DOM(Document Object Model,文档对象模型),和流机制解析器SAX(Simple ...

  10. 使用DOM解析xml文件

    使用DOM解析xml文件 要解析的xml文件如下: <?xml version="1.0" encoding="UTF-8"?> <Langu ...

随机推荐

  1. Unity开发心路历程——制作画板

    有人说 编程是份很无聊的工作 因为整个工作时间面对的都是电脑这种机器 因为眼睛盯着的内容都是索然无味的代码 因为总是会有意想不到的bug让你怀疑自己的智商 而我认为 编程是件及其有意思的事情 可观的收 ...

  2. UML(统一建模语言)

    需求分析阶段 用例图 定义:用例图并不是用来描述用例的.用例图的主要作用是:直观地描述系统对外提供的功能. 用例图的三个要素:角色.系统.用例 用例图的关系: 角色和用例的关系:有关和无关 用例和用例 ...

  3. dojo grid 编辑问题

    今天dojo grid编辑小问题,找了半天才找到问题, 1.问题 2.原因 数据单元没有索引列->id 3.修改前代码 <!DOCTYPE HTML> <html lang=& ...

  4. About Sustainability

    我不喜欢人们常说"紧张感", "危机感".这只会让人觉得疲惫,无非是自己拿鞭子抽着自己,最终会觉得难以继续.那么快乐到底从哪里来?成就感到底从哪里来呢? 我更喜 ...

  5. Java基础知识系列——目录操作

    Java对目录操作的许多方法与上一篇文件操作的方法很多是一样的. java.io.File file = new File( "D:\1\2\3\4"); 1.递归创建目录 fil ...

  6. iOS 键盘类型

    版权声明:本文为博主原创文章.请尊重作者劳动成果,转载请注明出处. UIKeyboardTypeDefault: UIKeyboardTypeASCIICapable: UIKeyboardTypeN ...

  7. pod导入融云路径报错解决办法

    build Settings中搜索sear Search Patchs下点开Library Search Paths 将$(inherited)"$(SRCROOT)/Pods"分 ...

  8. Hibernate 知识点梳理

    1.对持久化对象的要求 1)提供一个无参构造器 2)提供一个标识属性,如id,通常映射为数据库表的主键字段. 3)为持久化类的字段提供get.set方法. 注:但不一定所有字段都这么做,对于不提供ge ...

  9. Hibernate 注解的用法以及说明(二)

    注解映射必须满足两大条件:Hibernate3.2以上版本和JSEE 5. @Entity 类注释,所有要持久化的类都要有@Entity   public class Org  implements ...

  10. JAVA生成随机数

    java中一般有两种随机数,一个是Math中random()方法,一个是Random类. 一.Math.random() 随即生成0<x<1的小数. 实例:如何写,生成随机生成出0~100 ...