<?xml version="1.0" encoding="gbk"?>			<!--设置编码格式为gbk-->
<!DOCTYPE hostList[
<!ELEMENT hostList (host+)> <!--设置文件的根节点hostList,以及子节点host,+代表可以有多个-->
<!ELEMENT host (id ,title,types,street,floot,price)> <!--设置host节点下的子节点 -->
]>
<hostList><!-- 必须以我们设置的规则来写xml文件不然会立即出错 -->
<host>
<id>1</id>
<title>洛阳出租</title>
<types>两室两厅</types>
<street>洛阳龙鳞路</street>
<floot>120</floot>
<price>2000</price>
</host>
<host>
<id>2</id>
<title>郑州出租</title>
<types>两室一厅</types>
<street>金水区</street>
<floot>100</floot>
<price>3000</price>
</host>
</hostList>

  解析xml文件

package test;

import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException; public class Text {
public static void main(String[] args) { try {
DocumentBuilderFactory builderfactory=DocumentBuilderFactory.newInstance();//创建解析器的工厂
DocumentBuilder builder= builderfactory.newDocumentBuilder();//创建解析器对象
try {
Document document=builder.parse("WebRoot/HostList.xml");//获取到xml文件,并解析xml文件
NodeList nodelist=document.getElementsByTagName("host");//获取到所有的子节点“host”
for (int i = 0; i < nodelist.getLength(); i++) { Node hoselist =nodelist.item(i);//获取单个host节点
NodeList childList=hoselist.getChildNodes();//获取host节点下的所有节点
for (int j = 0; j < childList.getLength(); j++) {//循环读取所有的节点
Node subNode=childList.item(j);//获取host节点下的某个节点
if(subNode.getNodeType()==Node.ELEMENT_NODE)//判断元素是否为节点元素
{
String name=subNode.getNodeName();//获取节点名字
String valu=subNode.getFirstChild().getNodeValue();//获取节点下的value值
System.out.println(name+":"+valu);//输出
}
}
}
System.out.println();
} catch (SAXException e) { e.printStackTrace();
} catch (IOException e) { e.printStackTrace();
}
} catch (ParserConfigurationException e) { e.printStackTrace();
}
}
}

  

XML文件的读取的更多相关文章

  1. spring 框架的xml文件如何读取properties文件数据

    spring 框架的xml文件如何读取properties文件数据 第一步:在spring配置文件中 注意:value可以多配置几个properties文件 <bean id="pro ...

  2. python之xml 文件的读取方法

    ''' xml 文件的读取方法 ''' #!/usr/bin/env python # -*- coding: utf- -*- import xml.etree.ElementTree as ET ...

  3. XML文件的读取----cElementTree

    XML文件如下: <?xml version="1.0" encoding="UTF-8"?> <tokenxml> <token ...

  4. Java文件操作①——XML文件的读取

    一.邂逅XML 文件种类是丰富多彩的,XML作为众多文件类型的一种,经常被用于数据存储和传输.所以XML在现今应用程序中是非常流行的.本文主要讲Java解析和生成XML.用于不同平台.不同设备间的数据 ...

  5. 使用DOM4J解析XMl文件与读取XML文件

    XML文件 <?xml version="1.0" encoding="UTF-8"?> <bookstore> <book id ...

  6. MVVM模式应用 之xml文件的读取

    XML如下所示: <?xml version="1.0" encoding="utf-8" ?> <schools> <schoo ...

  7. C#的XML文件的读取与写入

    在设计程序的时候,对于一些变化性较强的数据,可以保存在XML文件中,以方便用户修改.尤其是对于一些软硬件的配置文件,很多都选择了用XML文件来存取.XML文件简单易用,而且可以在任何应用程序中读写数据 ...

  8. WinForm中DataGridView对XML文件的读取

    转自http://www.cnblogs.com/a1656344531/archive/2012/11/28/2792863.html c#读取XML   XML文件是一种常用的文件格式,例如Win ...

  9. linux下使用libxml2实现对xml文件的读取及查询

    由于项目需要,这两天在用C++做XML文件解析的工作.在linux下有个很方便的操作xml文件的库——libxml2,它提供了一套创建和查询xml文件的C语言的接口.这篇博客主要介绍如何使用libxm ...

随机推荐

  1. nginx 错误502 upstream sent too big header while reading response header from upstream

    查看nginx的错误日志,得到以下错误信息:upstream sent too big header while reading response header from upstream按字面意思理 ...

  2. 基于335X平台的UBOOT中交换芯片驱动移植

    基于335X平台的UBOOT中交换芯片驱动移植 一.软硬件平台资料 1.开发板:创龙AM3359核心板,网口采用RMII形式. 2.UBOOT版本:U-Boot-2016.05,采用FDT和DM. 3 ...

  3. PostgreSQL自学笔记:6 PostgreSQL函数

    6 PostgreSQL函数 6.2 数学函数 abs(x) 绝对值 pi() 圆周率π select abs(-3),pi(); cookie: MySQL中的pi()默认值3.141593, Po ...

  4. 2017-11-4—LTspice

    LTspice这个软件基本上上手就能用,没什么好说的. ADI的一些器件下载的spice文件可能是.cir的需要使用cadence的pspice软件打开后另存为.dir文件使用.(比如ad4096) ...

  5. Python学习笔记整理(python 3)

    一.tuple(元组) tuple和list非常类似,但是tuple一旦初始化就不能修改,如: classmates = ('Michael', 'Bob', 'Tracy') 1 classmate ...

  6. angular.isDate()

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. python提取xml属性导入Mysql

    xml文档来自ganglia-gmond端telnet localhost 8649产生出来的文档,由于ganglia每隔一段时间就更新数据,为了永久保存数据到MySQL中,就用python写了最开始 ...

  8. 2018-2019-1 20189210 《LInux内核原理与分析》第六周作业

    系统调用实验(下): 将第四章的两个实验集成到MenuOS系统中,将其作为MenuOS系统的两个命令,新版本的menu中已经把两个系统调用添加进去了,只需重新克隆一个新版本的menu. 使用make ...

  9. Docker简介以及使用docker搭建lnmp的过程(多PHP版本)

    一.Docker基础 Docker安装 Docker 要求 Ubuntu 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的 Ubuntu 版本是否支持 Docker. 通过 uname ...

  10. Hadoop wordcount Demon

    搭建完成Hadoop后,第一个demon,wordcount.此处参考:http://blog.csdn.net/wangjia55/article/details/53160679 wordcoun ...