从Java中的webservice响应中解析CDATA内容

时间:2012-08-04 05:41:43

标签: java xml web-services cdata string-parsing

我正在使用我的Java代码进行webservice调用,并使用以下数据将响应作为String获取。

<DocumentElement>
   <ResultSet>
     <Response>Successfully Sent.</Response>
     <UsedCredits>1</UsedCredits>
   </ResultSet>
</DocumentElement>

现在,我想解析下面的响应String并单独获取<Response>标记的值以进行进一步处理。既然,我只获得了CDATA内容如何解析String内容?

1 个答案:

答案 0 :(得分:0)

你显然需要这个XML解析器。可以说上面的内容存储在名为String

content变量中
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    try {
          //Using factory get an instance of document builder
           DocumentBuilder db = dbf.newDocumentBuilder();
           InputSource is = new InputSource();
           is.setCharacterStream(new StringReader(content)); //content variable holding xml records         
           Document doc = db.parse(is)
           /* Now retrieve data from xml */
           NodeList nodes = doc.getElementsByTagName("ResultSet");
           Element elm = (Element) nodes.item(0);   //will get you <Response> Successfully Sent.</Response>
           String responseText = elm.getFirstChild().getNodeValue();

    }catch(ParserConfigurationException pce) {
        pce.printStackTrace();
    }catch(SAXException se) {
        se.printStackTrace();
    }catch(IOException ioe) {
        ioe.printStackTrace();
    }

按照上面的解析器例程来处理更大的数据集。对多个类似的数据集使用循环。希望有所帮助。