【问题标题】:Android parse XMLAndroid 解析 XML
【发布时间】:2013-11-06 11:02:51
【问题描述】:
public boolean editXML(String newCar) {
    try {
        String myXMLfile = "res\\values\\cars.xml";

        DocumentBuilderFactory docFactory = DocumentBuilderFactory
                .newInstance();
        DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
        Document doc = docBuilder.parse(myXMLfile);

        Node string_array = doc.getElementsByTagName("string-array")
                .item(0);

        Element item = doc.createElement("item");
        item.setTextContent(newCar);
        string_array.appendChild(item);

        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = transformerFactory.newTransformer();
        DOMSource source = new DOMSource(doc);
        StreamResult result = new StreamResult(new File(myXMLfile));
        transformer.transform(source, result);
        return true;
    } catch (Exception e) {
        return false;
    }
}

如果我运行一个普通的 JAVA 项目,上面的函数可以正常工作,但是,如果我在一个 android 项目中运行它,它会返回 false。问题出在哪里?如何在 android 项目中预览 e.printstacktrace 以便我可以看到异常的内容?

【问题讨论】:

    标签: java android xml parsing


    【解决方案1】:

    第一个问题:

    } catch (Exception e) {
        return false;
    }
    

    这会使代码抛出的任何Exception 静音,并且不能帮助您诊断问题。至少将异常堆栈跟踪打印到日志中,例如

    } catch (Exception e) {
        android.util.Log.e("tag", "", e);
        return false;
    }
    

    第二个问题:

    String myXMLfile = "res\\values\\cars.xml";
    

    Android 资源在构建过程中被编译为二进制形式。您的应用程序无法通过这种方式使用它们。要从资源中读取 XML,请参见例如Android : Reading XML from local resource (for testing).

    第三题:谁知道呢,先把前面的修好。

    【讨论】:

      【解决方案2】:

      可以在 LogCat 窗口中查看堆栈跟踪。如果它没有显示,在 Eclipse 中,您必须转到 Window > Show View > Other,然后您应该在 Android 部分下找到 Logcat。对于 Android Studio,this question 的图片可能比任何解释都好:)

      如果没有错误跟踪,很难说您的解析问题出在哪里...要在 Logcat 中显示堆栈跟踪,请将 e.printStackTrace(); 添加到您的 catch 块中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-05-21
        • 2017-03-22
        • 2012-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多