您的位置:首页 > 其它

解析xml格式的字符串的案例

2013-04-25 08:30 429 查看
如何解析xml格式的字符串的案例

/*

* 创建日期 2008-4-15

*

* TODO 要更改此生成的文件的模板,请转至

* 窗口 - 首选项 - Java - 代码样式 - 代码模板

*/

package com.tsinghua;

import java.io.*;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.*;

import org.w3c.dom.*;

/**

* @author administrator

*

* TODO 要更改此生成的类型注释的模板,请转至

* 窗口 - 首选项 - Java - 代码样式 - 代码模板

*/

public class Dome2 {

public static void main(String[] args) {

// 开始 解析 person.xml文件

//1解析器 工厂 类

DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();

try {

// 通过 解析器 工厂 创建 一个 解析 器

DocumentBuilder db=dbf.newDocumentBuilder();

//告诉 改 解析器 去 解析 那个 文件 -->dom树

// Document dm=db.parse("f:\\person.xml");

//对字符串解析

String testStr= "<?xml version=\"1.0\" encoding=\"gb2312\"?>"+

"<!--该xml存储了人员信息-->"+

"<company><person sex=\"male\" id=\"0001\"><name att=\"ok\"><realname>小小</realname>"+

"<nickname>小猪</nickname></name><email>zhangsan@sohu.com</email></person></company>";

//将该字符串转为InputStream流

InputStream iStream=new ByteArrayInputStream(testStr.getBytes());

Document dm=db.parse(iStream);

//得到 所有 person节点

NodeList persons=dm.getElementsByTagName("person");

for(int i=0;i<persons.getLength();i++){

//element 和 node 是 同一 概念

//不同 的 是 element 提供 更多 方法

Element personElement = (Element)persons.item(i);

//得到person节点的属性

String id=personElement.getAttribute("id");

System.out.println("id="+id);

NodeList nameList=personElement.getElementsByTagName("name");

Element name=(Element)nameList.item(0);

String att=name.getAttribute("att");

System.out.println("att="+att);

//取出 name 的 值

// System.out.println("name="+nameList.item(0).getFirstChild().getNodeValue());

}

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

} finally {

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: