`
versioneye
  • 浏览: 18328 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

解析xml流

阅读更多
Xml格式数据通过http协议传入,这边接收请求、解析、调用、传出。

在一个Servlet中来对传入的xml流进行操作:

   /**
     * 重载方法
     * @param request request
     * @param response response
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException
    {
       Document doc = buildDucument(request.getInputStream());
       String name = doc.getRootElement().getChildText("name");
       String age = doc.getRootElement().getChildText("age");
       String country = doc.getRootElement().getChildText("country");
       Student student = new Student();
       student.setName();
       student.setAge();
       student.setCountry();
    }

我们根据请求中携带的xml输入流来获取xml数据的一个Document(即头结点),再解析xml来获取每个节点的值,然后把值放入相应的实体类(即Student类)中。
下面是我们对此操作所需要的一些类和方法。
学生信息的实体类:
public class Student
    {
        private String name;
        
        private int age;
        
        private String country;
        
        public String getName()
        {
            return name;
        }
        
        public void setName(String name)
        {
            this.name = name;
        }
        
        public int getAge()
        {
            return age;
        }
        
        public void setAge(int age)
        {
            this.age = age;
        }
        
        public String getCountry()
        {
            return country;
        }
        
        public void setCountry(String country)
        {
            this.country = country;
        }
    }

学生信息的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<student>
    <name>Tom</name>
    <age>25</age>
    <country>China</country>
</student>

通过输入源构造一个Document:
    public static Document buildDucument(InputStream inputStream)
    {
        InputSource source;
        // 创建一个新的SAXBuilder
        SAXBuilder builder = new SAXBuilder();
        try
        {
            source = new InputSource(inputStream);
            // 通过输入源构造一个Document
            return builder.build(source);
        }
        catch (Exception e)
        {
            e.getMessage(); 
        }
        return null;
    }


上述方法是根据传入的xml输入流来构造出一个Document,以备解析之用。

那该如何来构造一个请求,其中携带着xml数据呢?
我们可以用Perl语言来写一个脚本,来模拟这个请求。如附件

分享到:
评论
2 楼 versioneye 2011-10-12  
quanquanxingxing 写道
彬哥,牛B啊,,V5了

可以模拟吗?在dos下运行那个脚本。把脚本里面的e
参数改一下就行了。
1 楼 quanquanxingxing 2011-10-12  
彬哥,牛B啊,,V5了

相关推荐

    FTP服务器流解析xml文件

    5. 解析XML流:使用流解析API逐行或逐块读取并解析XML数据。 6. 处理解析结果:根据业务需求对解析出的数据进行操作,如验证、计算或存储。 7. 关闭连接:完成操作后,记得关闭FTP连接以释放资源。 总之,FTP服务器...

    java解析xml的四种经典方法

    Java解析XML的四种经典方法是XML处理中常用的技术,它们分别是DOM、SAX、StAX和JDOM。每种方法都有其独特的特性和适用场景,下面将详细介绍这四种方法。 1. DOM(Document Object Model)解析: DOM是W3C制定的一种...

    IO流、Xml解析

    在IT领域,IO流(Input/Output Stream)和XML解析是两个重要的概念,它们在数据处理和信息交换中起着核心作用。 IO流是Java编程语言中的一个关键特性,用于处理程序与外部设备(如硬盘、网络、内存等)之间的数据...

    易语言 xml解析 易语言 xml解析 教程 带源码

    这些解析器可以帮助我们解析XML数据,将其转换为易语言可以处理的数据结构,如字节流、字符串或对象。常见的解析方式有DOM(Document Object Model)和SAX(Simple API for XML)两种。DOM解析器会将整个XML文档加载...

    PB 解析xml格式串

    在“PB解析xml格式串”的主题中,我们主要关注如何将XML格式的数据转换为Protocol Buffers的二进制格式,以便于高效地存储和传输。以下是一些相关的知识点: 1. **Protocol Buffers介绍**:PB是一种高效的序列化...

    解析xml和本地解析xml

    - 解析XML:使用适当的XML解析器将XML字符串转换为可操作的结构,如DOM树或事件流。 - 数据提取:遍历解析后的XML结构,提取需要的字段值。 - 数据映射:将提取的字段值与数据库表的结构对应起来。 - 插入数据库...

    解析xml解析xml解析xml解析xml解析xml

    3. StAX解析:Streaming API for XML(StAX)是基于流的解析,允许应用程序以拉式方式从XML源读取事件,内存占用比DOM低,编程灵活。 三、XML解析器 1. JAXP:Java API for XML Processing,Java平台的标准XML处理...

    javaSAX方式解析xml文档

    Java SAX方式解析XML文档是一种高效的处理大型XML文件的方法,它基于事件驱动模型,不将整个XML文档加载到...4. 使用解析器解析XML流,调用`XMLReader.parse()`。 5. 如果涉及服务器端,可以使用Servlet来提供XML文件。

    Sax解析XML文件解析

    3. **解析XML**:调用`parse`方法,传入XML文件的输入流或URL,开始解析过程。 **SAX解析XML的关键事件处理:** 1. **startDocument()**:开始解析文档时触发。 2. **startElement()**:遇到开始标签时触发,提供...

    java使用dom解析xml

    在这个场景下,我们从 Android 资源文件中获取输入流,然后进行解析。 总结来说,Java 中使用 DOM 解析 XML 是一种直观且功能强大的方式,尤其适用于对整个 XML 文档进行遍历和修改。不过,考虑到性能和内存占用,...

    android 解析XML文件 生成XML文件

    3. 使用parse()方法解析XML文件,传入输入流和之前创建的处理器对象。 二、DOM解析XML文件 DOM(Document Object Model)将整个XML文档加载到内存中,形成一棵树形结构,方便遍历和操作。对于小规模的XML文件,DOM...

    XmlPullParser解析Xml文件解析demo

    XmlPullParser是Android系统提供的一种解析XML文件的API,它是一种基于事件驱动的解析方式,能够高效、节省资源地处理XML文档。在这个“XmlPullParser解析Xml文件解析demo”中,我们将探讨如何利用XmlPullParser来...

    sax解析xml本地读取xml

    3. **解析XML**:调用`XMLReader.parse()`方法,传入XML文件的URL或输入流,解析器开始读取XML并触发事件处理器中的相应方法。 4. **处理事件**:在事件处理器中,我们可以根据接收到的事件类型来处理XML文档中的...

    kettle 解析xml多层次流式解析2

    解析xml使用流的办法解析,设计一些列转行,等语句。换

    Pull解析xml源码导入即可用

    本文将深入探讨Android中的Pull解析XML技术,以及如何利用模板快速实现XML的解析。 首先,理解XML Pull解析器的工作原理是至关重要的。在Android中,XML Pull解析是一种轻量级处理XML文档的方式,它允许应用移动...

    java解析XML文件

    Java解析XML文件是Java开发中常见的一项任务,XML(eXtensible Markup Language)作为一种结构化数据存储格式,被广泛用于数据交换、配置文件和Web服务等场景。本篇文章将详细探讨Java如何利用DOM4J库来解析XML文件...

    xml解析xml解析xml解析xml解析

    3. StAX(Streaming API for XML):与SAX类似,也是流式解析,但提供了向前看的能力,允许开发者更灵活地处理XML流。 XML命名空间:为了避免元素名称冲突,XML引入了命名空间的概念。例如,`xmlns=...

    full方式解析xml

    4. 解析XML:调用`SAXParser`的`parse`方法,传入XML文件或输入流以及事件处理器。 四、SAX解析示例 ```java import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers....

    Dom4j解析XML文档.doc

    无论是读取XML文件,解析XML字符串,还是创建、修改和遍历XML结构,DOM4J都提供了简洁的接口,极大地简化了开发者的工作。在实际的开发中,掌握DOM4J的使用,能够帮助你更有效地处理XML数据,提高代码的可维护性和...

Global site tag (gtag.js) - Google Analytics