如何解析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 {
}
}
}