2012-05-03 2 views
2

, например, у меня есть XML-файл:Получение XML строковые данные из элемента с использованием XmlPullParser

<names> 
     <item value="Hello" /> 
     <item value="All" /> 
     <item value="This" /> 
     <item value="Data" /> 
</names> 

Так что мне нужно, чтобы получить все исходные данные из данного атрибута (имена):

<item value="Hello" /> 
    <item value="All" /> 
    <item value="This" /> 
    <item value="Data" /> 

В формат строки, поэтому данные должны быть:

String data = " 
<item value="Hello" /> 
<item value="All" /> 
<item value="This" /> 
<item value="Data" /> 
"; 

и у меня есть мир кода:

int state = 0; 
    do { 
     try { 
      state = parser.next(); 
     } catch (XmlPullParserException e1) { 
      e1.printStackTrace(); 
     } catch (IOException e1) { 
      e1.printStackTrace(); 
     }  
     if (state == XmlPullParser.START_TAG) { 
      if (parser.getName().equals("names")) { 

// here I need to get the data 
// String data = ... 

       break; 
      } 
     } 
    } while(state != XmlPullParser.END_DOCUMENT); 

так, как я могу получить данные из элемента xml в строковом формате?

ответ

1

Я считаю, что вместо того, где у вас есть

if (parser.getName().equals("names")) {... 

это должно быть что-то вроде этого:

ArrayList<String> data=new ArrayList<String>(); 
.... 
.... 
if (parser.getName().equals("item")) { 
    data.add(xpp.getAttributeValue(0)); 
} 

Я новичок, так что я был просто поиск этой информации в последнее время, к счастью, я нашел полезный образец из commonsguy (который скопировал и работал нормально без каких-либо изменений) - https://github.com/commonsguy/cw-android/tree/master/Resources/XML

3

Я использовал DOM2XmlPullBuilder для преобразования XmlPullParser в DOM , затем преобразуйте DOM в строку. Код выглядит примерно так.

DOM2XmlPullBuilder dom2XmlPullBuilder = new DOM2XmlPullBuilder(); 
Element element = dom2XmlPullBuilder.parseSubTree(xmlPullParser); 
convertNodeToString(element); // implement using a Transformer 
Смежные вопросы