我在res / xml / products.xml中有一个名为products.xml的文件,其中包含以下XML数据:

<?xml version="1.0" encoding="UTF-8"?>
<products>
    <product>
        <productname>Jeans</productname>
        <productcolor>red</productcolor>
        <productquantity>5</productquantity>
    </product>
    <product>
        <productname>Tshirt</productname>
        <productcolor>blue</productcolor>
        <productquantity>3</productquantity>
    </product>
    <product>
        <productname>shorts</productname>
        <productcolor>green</productcolor>
        <productquantity>4</productquantity>
    </product>
</products>


我的主要目标是使用XMLPullParser对其进行解析。但是,当我尝试打开文件时,得到的输出很奇怪。这是我正在使用的代码:

    BufferedReader in = null;
    try {
        in = new BufferedReader(new InputStreamReader(appContext
                .getResources().openRawResource(R.xml.products), "UTF-8"));
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (NotFoundException e) {
        e.printStackTrace();
    }

    StringBuilder s = new StringBuilder();
    String line;
    while ((line = in.readLine()) != null) {
        s.append(line);
    }

    System.out.println("String: " + s);


而且我得到了一个奇怪的输出,其中包含以下这些字符:

�������������������������������������������������������������������


我究竟做错了什么?谢谢

最佳答案

您必须将XML文件放入res / raw文件夹,然后使用openRawResource(R.raw.products)读取它,或者,如果您想将其解析为XML,请使用getResources().getXml(id),但是会得到一个XmlResourceParser而不是。

关于java - 使用InputStream在Android中打开XML文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28796499/

10-11 22:37
查看更多