DOM分析器中出错

|
private String getNodeValue(Element e) {
    String str = \"\";
    Node node = e.getFirstChild();

    if (node instanceof CharacterData) {

        CharacterData cd = (CharacterData) node;
        str += cd.getData();
    }
    System.out.println(\"String =\"+ str);
    return str;
}
我正在使用此代码使用DOM解析xml 编辑!
<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>
<root status=\"1\">
<reminder type= \"timer\" id=\"861\">
<user fromid=\"48\" toid=\"48\" fromemail=\"xyz@xyz.com\">Dharmendra Patel</user>
<title>10:00 AM Coffy?</title> 
<desc>Let&#039;s go for coffy</desc>
<date>13/03/2011 09:22:00</date>
<repeat>MO</repeat> 
<todo><category name=\"\">
<item></item> 
</category>
</todo>
</reminder>
</root>
这是我的XMl响应,我正在使用此代码
NodeList nldesc = elUser.getElementsByTagName(\"desc\");

Element eldesc = (Element) nldesc.item(0);

String taskdesc = getNodeValue(eldesc);
如果节点值包含“ \\让我们去做coeffy \”这样的字符串,那么这给了我\\“让我们去做coeffy \”这样的字符串,那么问题是什么?请帮我..     
已邀请:
您可以使用Element.getTextContent()获取元素文本。请注意,只有在API级别8和更高级别中才能使用此方法。 在低于8的APi级别中,可以使用getNodeValue方法。仅当您的节点类型为TEXT_NODE时,它才会成功 编辑
    try {
        Document doc =
                DocumentBuilderFactory
                        .newInstance()
                        .newDocumentBuilder().parse(
                            new StringBufferInputStream(\"<desc>let\'s go for Coffey </desc>\"));
        NodeList list = doc.getElementsByTagName(\"desc\");
        Log.d(\"MainActivity\", list.item(0).getFirstChild().getNodeValue());
    } catch (ParserConfigurationException e) {
        // ignore
    } catch (IOException e) {
        // ignore
    } catch (SAXException e) {
        // ignore
    }
以下代码可以正常工作。执行后,我得到了我的日志:
04-12 21:20:42.766: DEBUG/MainActivity(26843): let\'s go for Coffey
编辑2: 要处理#&...实体,请对编码的字符串使用Html.fromHtml(String)方法,然后对结果使用toString()。
Log.d(\"MainActivity\", 
    Html.fromHTML(
        list.item(0).getFirstChild().getNodeValue()
    ).toString());
编辑3 这是您案例的完整解决方案。
    String data = \"<?xml version=\\\"1.0\\\" encoding=\\\"ISO-8859-1\\\"?> <root status=\\\"1\\\"> <reminder type= \\\"timer\\\" id=\\\"861\\\"> <user fromid=\\\"48\\\" toid=\\\"48\\\" fromemail=\\\"xyz@xyz.com\\\">Dharmendra Patel</user> <title>10:00 AM Coffy?</title> <desc>Let&#039;s go for coffy</desc> <date>13/03/2011 09:22:00</date> <repeat>MO</repeat> <todo><category name=\\\"\\\"> <item></item> </category> </todo> </reminder> </root>\";
    try {
        Document doc =
                DocumentBuilderFactory
                        .newInstance()
                        .newDocumentBuilder().parse(
                        new StringBufferInputStream(data));
        NodeList list = doc.getElementsByTagName(\"desc\");
        Node node = list.item(0);
        NodeList charNodes = node.getChildNodes();
        StringBuilder builder = new StringBuilder();
        for(int i = 0, l = charNodes.getLength(); i < l; i++) {
            builder.append(Html.fromHtml(charNodes.item(i).getNodeValue()).toString());
        }
        Log.d(\"MainActivity\", builder.toString());
    } catch (ParserConfigurationException e) {
        // ignore
    } catch (IOException e) {
        // ignore
    } catch (SAXException e) {
        // ignore
    }
    

要回复问题请先登录注册