当前位置:首页 > 编程开发

Java Dom解析XML

webgou17年前 (2009-10-10)编程开发228


1、XML文件persons.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<persons>
  <person><name>jak</name><sex>男</sex></person>
  <person>
    <name>jcy</name>
    <sex>女</sex>
  </person>
</persons>

2、java解析代码如下:

 1 package net.vicp.jiasoft;
 2
 3 import javax.xml.parsers.*;
 4 import java.io.IOException;
 5 import org.xml.sax.SAXException;
 6 import org.w3c.dom.Document;
 7 import org.w3c.dom.NodeList;
 8 import org.w3c.dom.Node;
 9
10 /**
11  * <p>Title: Dom解析XML示例</p>
12  *
13  * <p>Description: Dom解析XML</p>
14  *
15  * <p>Copyright: Copyright (c) 2008</p>
16  *
17  * <p>Company: Jiasoft</p>
18  *
19  * @author Jak.Shen
20  * @version 1.0
21  */
22 public class DomXml {
23     public void parsersXml() {
24         //实例化一个文档构建器工厂
25         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
26         try {
27             //通过文档构建器工厂获取一个文档构建器
28             DocumentBuilder db = dbf.newDocumentBuilder();
29             //通过文档通过文档构建器构建一个文档实例
30             Document doc = db.parse("persons.xml");
31             //获取所有名字为 “person” 的节点
32             NodeList nl1 = doc.getElementsByTagName("person");
33             int size1 = nl1.getLength();
34             for (int i = 0; i < size1; i++) {
35                 Node n = nl1.item(i);
36                 //获取 n 节点下所有的子节点。此处值得注意,在DOM解析时会将所有回车都视为 n 节点的子节点。
37                 NodeList nl2 = n.getChildNodes();
38                 //因为上面的原因,在此例中第一个 n 节点有 2 个子节点,而第二个 n 节点则有 5 个子节点(因为多了3个回车)。
39                 int size2 = nl2.getLength();
40                 for (int j = 0; j < size2; j++) {
41                     Node n2 = nl2.item(j);
42                     //还是因为上面的原因,故此要处判断当 n2 节点有子节点的时才输出。
43                     if (n2.hasChildNodes()) {
44                         System.out.println(n2.getNodeName() + " = " +
45                                            n2.getFirstChild().getNodeValue());
46                     }
47                 }
48             }
49         } catch (ParserConfigurationException ex) {
50             ex.printStackTrace();
51         } catch (IOException ex) {
52             ex.printStackTrace();
53         } catch (SAXException ex) {
54             ex.printStackTrace();
55         }
56     }
57
58     public static void main(String[] args) {
59         DomXml domxml = new DomXml();
60         domxml.parsersXml();
61     }
62 }

扫描二维码推送至手机访问。

版权声明:本文由知了博客发布,如需转载请注明出处。

本文链接:https://www.webgou.info/?id=32

标签: xml
分享给朋友:

“Java Dom解析XML” 的相关文章

软件测试的分类

A.白盒测试…

xcode objective-c categroy 与extersion

1,分类categroy 增加类方法一种手断,不能有成员变量。这个跟c++与java抽象类与接口还是有些不一样。类函数分类。 2.扩展extersion 匿名的categroy,实现可以有成员变量。 下面是实现的例子: [CODE] // // Category.h // objc /…

Agent 到底是什么?从 AI 聊天到自主执行

Agent 并不是“更聪明的聊天机器人”,也不是简单地给大模型套一层 UI。它更接近一种新的软件系统:以大语言模型作为决策核心,通过工具与外部世界交互,并围绕目标持续执行任务。…

游戏资源打包

游戏资源打包几乎是一个网络游戏客户端必备的功能。页游和微端根据实际需求可能不打包资源或者使用小包。资源打包有这么几个好处:1、加快客户端安装时间。拷贝3000个1mb文件所消耗的时间要远大于拷贝一个3g的文件所消耗的时间2、客户端更加整洁,也可以“稍微”避免游戏资源被他人使用…

突破障碍 用Google作代理畅游网络

突破障碍 用Google作代理畅游网络[from:http://tech.163.com/07/0429/09/3D83J91T000917GE.html]通常,当你在查看一个网页时,你计算机上的浏览器软件就会连接到目标服务器,下载页面的数据,接着再将它呈现在你的面前。一般情况下,这确实是访问网站的…

WinCE下直接启动应用程序的方法

其实让一个程序在wince里启动和windows里差不多,直接设置其为启动项,这个有几个方法。一个就是制作一个快捷方式,指向我们的应用程序如app.exe,然后将快捷方式放到\windows\startup下面。...…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。