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 times=null;
private ServerSocket ss;
private Socket socket;
private BufferedReader in;
private InputStream  is;
private PrintWriter out;public SendMessage()
{
try
{
ss = new ServerSocket(10000);while (true)
{
socket = ss.accept();
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
is = 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();
DocumentBuilder db = null;
try {db = dbf.newDocumentBuilder();
System.out.println("db:"+db);} catch (ParserConfigurationException pce) {System.err.println(pce);System.exit(1);}
Document doc = null;try{
   doc = db.parse(is);System.out.println("aaa"+doc); }catch(org.xml.sax.SAXException e){;}
  
userID = doc.getElementsByTagName("UserID").item(0).getFirstChild().getNodeValue();
userData = doc.getElementsByTagName("UserData").item(0).getFirstChild().getNodeValue();
times = 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("时间是 :"+times);
System.out.println("doc:"+doc);
out.close();
in.close();
socket.close();}
}
catch (IOException e)
{}
}
  public static void main(String[] args){
new SendMessage();
}
}为什么doc老是取得空值啊?谁知道怎么回事啊,郁闷了好久!!!!

解决方案 »

  1.   

    你在 doc = db.parse(is);System.out.println("aaa"+doc); }catch(org.xml.sax.SAXException e){;}
    中的catch块里加上e.printStackTrace();看看是否有exception
      

  2.   

    现在的运行结果如下:
    接收的字符串是:<?xml version="1.0" encoding="utf-8" ?> <SMS><Type>Submit</Type><
    UserID>8613808899064</UserID><UserData>GGGG</UserData><Time>2005-7-7 22:30:33</T
    ime></SMS>
    db:org.apache.crimson.jaxp.DocumentBuilderImpl@1503a3
    org.xml.sax.SAXParseException: 缺少文件根组件。
            at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3182)
            at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3170)
            at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:501)
            at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)
            at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)        at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl
    .java:185)
            at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:76)
            at SendMessage.<init>(SendMessage.java:56)
            at SendMessage.main(SendMessage.java:81)
    Exception in thread "main" java.lang.NullPointerException
            at SendMessage.<init>(SendMessage.java:58)
            at SendMessage.main(SendMessage.java:81)