我想在servlet中处理收到的带xml内容的http请求,但是不知道如何将里面的xml内容解析出来,请各位有经验的大侠们指点下,最好给段程序参考下

解决方案 »

  1.   

    用SAX写了个,还有DOM,JDOM,DOM4J可以自己看下
    public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException
    {
    SAXParserFactory saxFactory = SAXParserFactory.newInstance();
    SAXParser saxParser = saxFactory.newSAXParser();
    // saxParser.parse(new File("student.xml"), new Handler());
    String xml = "";
    InputSource   is=new   InputSource(new   StringReader(xml)); 
    saxParser.parse(is,  new Handler());
    }
    class Handler extends DefaultHandler
    {
    @Override
    public void startElement(String uri, String localName, String qName,
    Attributes attributes) throws SAXException
    {
    System.out.print("<");
    System.out.print(qName);

    for(int i = 0 ; i < attributes.getLength();i++)
    {
    String name = attributes.getQName(i);
    String value = attributes.getValue(i);

    System.out.print(" "+name + "='" + value+"'");
    }

    System.out.print(">");
    }

    @Override
    public void characters(char[] ch, int start, int length)
    throws SAXException
    {
    System.out.print(new String(ch,start,length));
    }

    @Override
    public void endElement(String uri, String localName, String qName)
    throws SAXException
    {
    System.out.print("</");
    System.out.print(qName);
    System.out.print(">");
    }
    }
      

  2.   

    我还想问一下,一般servlet接受到request后用啥来取http://esales1.ofcard.com:8088/onlineorder.do?userid=A00002&userpws=xxxxxxx&cardid=360101&cardnum=1&sporder_id=xxxxxxxxx&sporder_time=xxxxxxxx&game_userid=xxxxx&game_area=xxxxxx&game_srv=xxxxx&md5_str=xxxxxxxxxxxxx&version=4.0这里面的键值对啊
      

  3.   

    我的意思是如何将http发送的内容取出来,如里面的键值字符串userid=A00002&userpws=xxxxxxx&cardid=360101&cardnum=1&sporder_id=xxxxxxxxx&sporder_time=xxxxxxxx&game_userid=xxxxx&game_area=xxxxxx&game_srv=xxxxx&md5_str=xxxxxxxxxxxxx&version=4.0和xml文本的内容串
      

  4.   

    我需要将这写字符串分解后以socket通讯方式再发送到后台,或者将后台发送的字符串分解后在拼装成http键值对的形式发送出去