2015-03-01 2 views
0

У меня есть файл с именем products.xml в Рез/XML/products.xml с этими данными XML:Открытие XML-файл в Android с InputStream

<?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); 

и я получаю странный вывод с кучей этих символов:

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

Что я делаю не так? Благодаря

ответ

1

Вы должны поместить файл XML в Резе/необработанную папку, а затем прочитать его с openRawResource(R.raw.products) или, если вы хотите, чтобы разобрать его, как XML, используйте getResources().getXml(id), но вы получите XmlResourceParser не String.

+0

На самом деле все, что мне нужно было сделать, - это переместить файл в res/raw. Почему я не могу создать свою собственную папку и открыть ее оттуда? Тем более, что данные были в приведенной строке, это просто включило много иностранных символов. – user1282637

+0

Ресурсы _special_ в Android. Существует определенная структура папок, и различные ресурсы переходят в разные папки и ведут себя по-разному. Если вы хотите, чтобы полностью определенная пользователем иерархия файлов и папок использовала вместо нее «Активы». –

+0

Спасибо за помощь ... примет. – user1282637