如何通过程序去取得,关于xml
如果我向一个服务器的jsp程序发送请求,它返回给我一个xml文本,我如何自动的去处理这个文本?
比如我发送一个请求 http://202.12.123.12/babyTest.jsp?version=new
服务器程序返回
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <sms-http>
- <query-resp>
<status>9</status>
<description>User missing</description>
</query-resp>
</sms-http>
请问我用什么方法来处理,希望各位老大帮忙!
问题点数:0、回复次数:6Top
1 楼xg_delayth(铁鹰)回复于 2003-12-04 14:56:52 得分 0
我的意思是用程序自动处理,比如直接取得xml文件中的值?Top
2 楼exitzhang(exit)回复于 2003-12-04 15:04:50 得分 0
用dom或者sax解析Top
3 楼xg_delayth(铁鹰)回复于 2003-12-04 15:11:53 得分 0
给个例子吧Top
4 楼kjah(黑丁)回复于 2003-12-04 15:22:51 得分 0
http://www0.ccidnet.com/tech/guide/2001/10/08/58_3393.htmlTop
5 楼kjah(黑丁)回复于 2003-12-04 15:26:15 得分 0
http://www0.ccidnet.com/tech/guide/2001/10/08/58_3392.htmlTop
6 楼xg_delayth(铁鹰)回复于 2003-12-10 15:20:25 得分 0
看来还是我自己搞定
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.net.*" %>
<%@ page import="java.io.*" %>
<%@ page import="javax.xml.parsers.DocumentBuilder" %>
<%@ page import="javax.xml.parsers.DocumentBuilderFactory" %>
<%@ page import="org.w3c.dom.Node" %>
<%@ page import="org.w3c.dom.Document" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%
System.setProperty( "http.proxyHost", "192.100.100.1" );
System.setProperty( "http.proxyPort", "80" );
java.net.URL url=new URL("http://mlink.etonenet.com/software/http/QueryHandler.jsp?user=ttehai&password=3t204&messageid=c370d3");
String tmpStatus="";
String tmpDescription="";
String tmpResult="";
try{
java.io.InputStream in = url.openStream();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(in);
Node root = doc.getDocumentElement();
Node node;
Node tmpNode;
Node tmpNode_1;
node = root.getFirstChild();
while ((node=node.getNextSibling())!=null)
if (node.hasChildNodes() && node.getNodeName().equals("query-resp")){
tmpNode=node.getFirstChild();
while (tmpNode!=null){
if (tmpNode.hasChildNodes() && tmpNode.getNodeName().equals("status")){
tmpNode_1=tmpNode.getFirstChild();
tmpStatus=tmpNode_1.getNodeValue();
}
if (tmpNode.hasChildNodes() && tmpNode.getNodeName().equals("description")){
tmpNode_1=tmpNode.getFirstChild();
tmpDescription=tmpNode_1.getNodeValue();
}
if (tmpNode.hasChildNodes() && tmpNode.getNodeName().equals("result")){
tmpNode_1=tmpNode.getFirstChild();
tmpResult=tmpNode_1.getNodeValue();
}
tmpNode=tmpNode.getNextSibling();
}
}
out.println("<br>tmpStatus:"+tmpStatus);
out.println("<br>tmpDescription:"+tmpDescription);
out.println("<br>tmpResult:"+tmpResult);
} catch(Exception e){
out.println(e.toString());
}
%>Top




