java - 解析 XML,删除 & 之后的所有字符

标签 java android xml-parsing escaping

我正在创建一个应用程序来解析一些 XML 并将其显示在 ListView 中。我的 xml 中的一些项目包含 &,所以我像这样对它们进行了转义 & 它在一些设备和模拟器上正常工作。

但在两个设备(Samsung Sidekick 4g API 2.2 和 Samsung Replish API 2.3.6)上它失败了。 & 之后的所有内容都神奇地消失了。

这是 XML 中给我带来麻烦的项目:

<site>
    <name>English Language &amp; Usage</name>
    <link>http://english.stackexchange.com/</link>
    <about>English Language &amp; Usage Stack Exchange is a question and answer site for linguists, etymologists, and serious English language enthusiasts.</about>
    <image>https://dl.dropboxusercontent.com/u/5724095/XmlParseExample/english.png</image>
</site>

这是解析代码的“主要内容”:

private static String getValue(Element item, String str) {
    NodeList n = item.getElementsByTagName(str);
    Log.i("StackSites", ""+getElementValue(n.item(0)));
    return getElementValue(n.item(0));
}

private static String getElementValue( Node elem ) {
         Node child;
         if( elem != null){
             if (elem.hasChildNodes()){
                 for( child = elem.getFirstChild(); child != null; child = child.getNextSibling() ){
                     if( child.getNodeType() == Node.TEXT_NODE  ){
                         return child.getNodeValue();
                     }
                 }
             }
         }
         return "";
  }

在某些设备(LG Optimus G、Moto Attrix 2 和一些模拟器)上,这可以正常工作,结果如下:

enter image description here

但是在我尝试过的两台三星设备上,getValue() 方法只返回 & 之前的文本,所以结果是这样的:

enter image description here

最佳答案

那是因为您没有查看其余节点。实体获得不同的节点,实体后面的文本获得之后的节点。您将立即返回——您需要连接您的结果。

关于java - 解析 XML,删除 & 之后的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16136627/

相关文章:

Java-Selection 按 int 键对对象数组进行排序并显示在表中

Java 找不到名为 'and' 的类? -- 不是标准类未发现异常--

java - 用java设置系统时间的毫秒数

java - 如何保证应用数据的完整性?

ruby-on-rails - 使用 Ruby on Rails 4.0 解析本地 XML 文件

Java 检查一个字符串是有效的 JSON 还是有效的 XML 或者两者都不是

java - Android - 如何从 API (rottentomatoes) JSON 获取 url/链接

android - 没有开启Root的设备的 Android 应用程序的默认数据库位置是什么?它与 Root过的一样吗?

xml - 将 Infopath .XML 表单导入 R 中的数据框

javascript - 根据解析的 XML 纬度和经度值将 Google map 居中