我用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不熟!!请大家帮帮忙!很急

解决方案 »

  1.   

    参考:http://www.ccw.com.cn/htm/center/prog/02_11_27_3.asp
      

  2.   

    但是我接收的是字符串,是不是要新建一个XML对象把这个字符串转换成xml对象,然后对xml操作?
      

  3.   

    如果是String得话,你干脆自己解析。
      

  4.   

    可以将接收的字符串转换成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...
    ...
      

  5.   

    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();
    }
    }