java - 解析 XML,调用 doc.getDocumentElement().getNodeName() 并得到 "h1"的错误输出?

标签 java android xml dom

这是我的代码:(来源:http://www.androidhive.info/2011/11/android-xml-parsing-tutorial/)

这是我的 XML 文件:已删除

运行时,出现 NoResults,并且我得到字符串“h1”,它不是文件中的 xml 标记。 我不确定我的 xml 文件是否转换不正确,或者我无法成功找到“members”标签。

    ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();

    XMLParser parse = new XMLParser();
    String xml = parse.getXmlFromUrl(url); // getting XML
    Document doc = parse.getDomElement(xml); // getting DOM element

    NodeList nodes = doc.getElementsByTagName(KEY_MEMBER);

    // looping through all item nodes <member>
    for (int i = 0; i < nodes.getLength(); i++) {                           
        HashMap<String, String> map = new HashMap<String, String>();    

        Element e = (Element)nodes.item(i);
        map.put(KEY_FNAME, parse.getValue(e, KEY_FNAME));
        map.put(KEY_MNAME, parse.getValue(e, KEY_MNAME));
        map.put(KEY_LNAME, parse.getValue(e, KEY_LNAME));
        map.put(KEY_STATE, parse.getValue(e, KEY_STATE));
        map.put(KEY_PARTY, parse.getValue(e, KEY_PARTY));
        mylist.add(map);            
    }

    if((nodes.getLength() <= 0)){
            Toast.makeText(AndroidXMLParsingActivity.this, "NoResults " + doc.getDocumentElement().getNodeName(), Toast.LENGTH_LONG).show();
            finish();
    }

最佳答案

由于“h1”是一个 html 标签,我猜测您点击的 url 返回的是 html,而不是 xml。当然,确定这一点的一个简单方法是在解析 xml 字符串之前将其打印出来。

仅供引用,不确定在 android 上编码的限制,但在解析 xml 文档之前将其转换为字符串通常是一个坏主意(出于多种原因,从“破坏”xml 到不必要地增加内存)用法)。

关于java - 解析 XML,调用 doc.getDocumentElement().getNodeName() 并得到 "h1"的错误输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9321195/

相关文章:

安卓 XML : Drop shadow cut off

c# - 通过搜索 'value' 检索元素 'name'

java - 凯撒加密完全丢失空格

java - 尝试使用 Spring JdbcTemplate 从 Java 访问 AS400/DB2 存储过程

Android:如何让软键盘根本不出现

python - 使用lxml和xpath读取GPX

java - 如何在android中的imageview上添加这个效果

通过 HTTPS/SSL 的 Java 客户端证书

java - 使用对象编写器。即使我关闭文件,也会给我 EOF 异常。

java - Android Studio 解析 JSON 时出现问题