我在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/