• Dom解析


     1 /**功能说明 报文解析
     2  * @param 
     3  * @author 
     4  * @since 
     5  */
     6 package com.mall.common;
     7 
     8 import java.io.IOException;
     9 import java.io.StringReader;
    10 import java.util.List;
    11 
    12 import org.jdom.Document;
    13 import org.jdom.Element;
    14 import org.jdom.JDOMException;
    15 import org.jdom.Namespace;
    16 import org.jdom.input.SAXBuilder;
    17 import org.xml.sax.InputSource;
    18 
    19 
    20 public class DuXMLDoc {
    21     @SuppressWarnings("unchecked")
    22     public List xmlElements(String xmlDoc) {
    23         //创建一个新的字符串
    24         StringReader read = new StringReader(xmlDoc);
    25         //创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
    26         InputSource source = new InputSource(read);
    27         //创建一个新的SAXBuilder
    28         SAXBuilder sb = new SAXBuilder();
    29         try {
    30             //通过输入源构造一个Document
    31             Document doc = sb.build(source);
    32             //取的根元素
    33             Element root = doc.getRootElement();
    34             System.out.println("根元素的名称:"+root.getName());//输出根元素的名称(测试)
    35             //得到根元素所有子元素的集合
    36             List jiedian = root.getChildren();
    37             //获得XML中的命名空间(XML中未定义可不写)
    38             Namespace ns = root.getNamespace();
    39             Element et = null;
    40             for(int i=0;i<jiedian.size();i++){
    41                 et = (Element) jiedian.get(i);//循环依次得到子元素
    42                 /**//*
    43                  * 无命名空间定义时
    44                  * et.getChild("users_id").getText();
    45                  * et.getChild("users_address",ns).getText()
    46                  */
    47                 System.out.println(et.getChild("users_id",ns).getText());
    48                 System.out.println(et.getChild("users_address",ns).getText());
    49             }
    50             /**//*
    51              * 如要取<row>下的子元素的名称
    52              */
    53             et = (Element) jiedian.get(0);
    54             List zjiedian = et.getChildren();
    55             for(int j=0;j<zjiedian.size();j++){
    56                 Element xet = (Element) zjiedian.get(j);
    57                 System.out.println(xet.getName());
    58             }
    59         } catch (JDOMException e) {
    60             // TODO 自动生成 catch 块
    61             e.printStackTrace();
    62         } catch (IOException e) {
    63             // TODO 自动生成 catch 块
    64             e.printStackTrace();
    65         }
    66         return null;
    67     }
    68      public static void main(String[] args){
    69             DuXMLDoc doc = new DuXMLDoc();
    70             String xml = "<?xml version="1.0" encoding="gb2312"?>"+
    71             "<Result xmlns="http://www.fiorano.com/fesb/activity/DBQueryOnInput2/Out">"+
    72                "<row resultcount="1">"+
    73                   "<users_id>1001     </users_id>"+
    74                   "<users_name>wangwei   </users_name>"+
    75                   "<users_group>80        </users_group>"+
    76                   "<users_address>1001号   </users_address>"+
    77                "</row>"+
    78                "<row resultcount="1">"+
    79                   "<users_id>1002     </users_id>"+
    80                   "<users_name>wangwei   </users_name>"+
    81                   "<users_group>80        </users_group>"+
    82                   "<users_address>1002号   </users_address>"+
    83                "</row>"+
    84             "</Result>";
    85             doc.xmlElements(xml);
    86         }
    87 
    88 }
  • 相关阅读:
    c# 类成员的定义 定义方法、字段和属性
    Set Rowcount分页查询(转)
    Sql 学习笔记
    xen与kvm 天高地厚
    Linux_free(buffer与cache区别) 天高地厚
    快照技术 天高地厚
    磁盘阵列的状态与种类 天高地厚
    在linux中使用ramdisk文件系统 天高地厚
    oracle逻辑读取 天高地厚
    BeginInvoke和EndInvoke操作线程 天高地厚
  • 原文地址:https://www.cnblogs.com/lixin890808/p/3904650.html
Copyright © 2020-2023  润新知