getNodeValue()截断org.w3c.dom.Node中的属性内容

时间:2012-09-05 11:49:02

标签: java android xml string dom

我正在开发Android,需要从URL获取XML并检索一些值。下载没问题,但有些字段可以包含HTML实体(如 - )。当我从Node类(org.w3c.dom.Node)调用方法getNodeValue()时,该值在找到&时停止。 char,并截断String。

E.g:

<title>Episode #56 &#8211; Heroes</title>

当我调用getNodeValue()时,只返回“第56集”。

1 个答案:

答案 0 :(得分:0)

你可以试试这样的事情

String str = "<title>Episode #56 &#8211; Heroes</title>";
str = str.replaceAll("&", "amp;");

然后尝试解析它应该工作的'str'。

这是纯粹的dom解析器的示例实现。

public static void main(String[] args) throws XPathExpressionException {
    String str = "<title>Episode #56 &#8211; Heroes</title>";   
    str = str.replaceAll("&", "amp;");
    Document domDoc = null;
    try {
        DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
        ByteArrayInputStream bis = new ByteArrayInputStream(str.getBytes());
        domDoc = docBuilder.parse(bis);
    } catch (Exception e) {
        e.printStackTrace();
    }
    NodeList nlist = domDoc.getElementsByTagName("title");
    //System.out.println("child count  "+nlist.getLength());
    System.out.println("title value = "+nlist.item(0).getTextContent());
}