xml的问题急!!
我用socket服务端接收到对方发来的数据:
<?xml version="1.0" encoding="utf-8" ?>
<SMS>
<Type>Submit</Type>
<UserID>8613808899994</UserID>
<UserData>bb</UserData>
<Time>2005-7-7 22:30:33</Time>
</SMS>
怎么把8613808899994,bb,2005-7-7 22:30:33这三个字段提取出来啊,我对xml不熟!!请大家帮帮忙!很急
问题点数:100、回复次数:8Top
1 楼Ihate(讨厌编程)回复于 2005-07-25 11:26:23 得分 50
参考:http://www.ccw.com.cn/htm/center/prog/02_11_27_3.aspTop
2 楼jimrui(锐)回复于 2005-07-25 11:38:12 得分 0
但是我接收的是字符串,是不是要新建一个XML对象把这个字符串转换成xml对象,然后对xml操作?Top
3 楼prok(换换口味)回复于 2005-07-25 11:47:31 得分 10
如果是String得话,你干脆自己解析。Top
4 楼jimrui(锐)回复于 2005-07-25 11:49:54 得分 0
但是那三个字段的长度不是定长的?
楼上的有什么好方法啊?Top
5 楼liuxiancan123(SUNNY)回复于 2005-07-25 11:56:13 得分 40
可以将接收的字符串转换成xml,然后再解析xml
String st="...";
String filename="test.xml";
FileOutputStream outok=new FileOutputStream(new File(filename));
java.io.Writer write=new java.io.OutputStreamWriter(outok,"gb2312");
write.write(st);
write.close();
解析xml...
...Top
6 楼jimrui(锐)回复于 2005-07-25 12:01:37 得分 0
如果这样频繁的写进文件再处理会不会很耗系统资源啊?
有没有更高效的方法啊?Top
7 楼jimrui(锐)回复于 2005-07-25 16:11:20 得分 0
import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.net.*;
import java.io.*;
public class SendMessage
{
//用户号码
public String userID=null;
//内容
public String userData=null;
public String Time=null;
DocumentBuilder db = null;
private ServerSocket ss;
private Socket socket;
private BufferedReader in;
private PrintWriter out;
public SendMessage()
{
try
{
ss = new ServerSocket(10000);
while (true)
{
socket = ss.accept();
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(),true);
/*System.out.println("aaa");*/
String line = in.readLine();
System.out.println("接收的字符串是:"+line);
/*IputStream is=new IputStream(line);*/
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException pce) {
System.err.println(pce);
System.exit(1);
}
Document doc = null;
try{
doc = db.parse(line);}catch(org.xml.sax.SAXException e){;}
userID = doc.getElementsByTagName("UserID").item(0).getFirstChild().getNodeValue();
userData = doc.getElementsByTagName("UserData").item(0).getFirstChild().getNodeValue();
/*time = doc.getElementsByTagName("Time").item(0).getFirstChild().getNodeValue();*/
/*sUsrMSISDN=line.substring(0,13);*/
/* sContent=line.substring(14);*/
System.out.println("用户号码是 is :" + userID);
System.out.println("内容是is :"+userData);
/*System.out.println("时间是 :"+Time);*/
out.close();
in.close();
socket.close();
}
}
catch (IOException e)
{}
}
public static void main(String[] args)
{
new SendMessage();
}
}
Top
8 楼jimrui(锐)回复于 2005-07-25 16:12:21 得分 0
这是我的源码,帮帮我看看Top




