【问题标题】:Parsing CDATA content from webservice response in Java从 Java 中的 Web 服务响应中解析 CDATA 内容
【发布时间】:2012-08-02 02:58:49
【问题描述】:

我正在我的 Java 代码中进行 Web 服务调用,并使用以下数据以字符串形式获取响应。

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

现在,我想解析下面的响应字符串并单独获取&lt;Response&gt; 标记的值以进行进一步处理。因为,我只得到 CDATA 内容如何解析字符串内容?

【问题讨论】:

  • @mzjn 上面给出的数据包含在 CDATA 部分中。

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


【解决方案1】:

您显然需要 XML 解析器。假设上述内容存储在名为contentString 变量中

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

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

【讨论】:

  • 另外,由于您是新用户,如果您觉得有帮助,请不要忘记勾选此答案左侧的箭头。
  • 在哪里可以找到getCharacterDataFromElement 方法的代码?
  • 对不起,我很抱歉。我忘了包括那个。我的答案现已更新。
猜你喜欢
  • 2014-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-05
  • 2012-10-23
  • 2017-07-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多