首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

怎么解析xml格式的字符串的案例(Document解析)

2012-08-25 
如何解析xml格式的字符串的案例(Document解析)如何解析xml格式的字符串的案例/* * 创建日期 2008-4-15 * *

如何解析xml格式的字符串的案例(Document解析)
如何解析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 {        }    }}

热点排行