解析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语言来写一个脚本,来模拟这个请求。如附件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值