2012-04-11 8 views
1

Zuerst habe ich eine XML-Datei in res/xmlWie XML-Datei als Text im Android

<?xml version="1.0" encoding="utf-8"?> 
<rootelement1> 
<subelement> 
Hello XML Sub-Element 1 
</subelement> 
<subelement> 
    Hello XML Sub-Element 2 
    <subsubelement>Sub Sub Element</subsubelement> 
    </subelement> 
</rootelement1> 

Ich muss alles lesen Inhalt dieser Datei in String-Wert (wie lesen Textdatei zu Ende lesen und zum String)
Ich benutze XmlResourceParser, aber es hilft nicht.

 StringBuffer stringBuffer = new StringBuffer(); 
     Resources res = context.getResources(); 
     XmlResourceParser xpp = res.getXml(R.xml.myxmlfile); 


     xpp.next(); 
     int eventType = xpp.getEventType(); 
     while (eventType != XmlPullParser.END_DOCUMENT) 
     { 
      //add all text line by line, especially "<,>", attribute... 
     } 

Wie kann ich das lösen? Danke im Voraus!

+0

Haben Sie versucht, nur tun, 'res.getString (R.xml.myxmlfile);'? – aroth

+0

Es hilft nicht, einfach den Pfad der XML-Datei zurückgeben: "res/xml/myxmlfile" – R4j

+0

Interessant. Also, wenn es Ihnen diesen Pfad gibt, können Sie es direkt öffnen, wie mit einem Standard 'FileInputStream'? Oder noch besser, 'res.openRawResource (R.xml.myxmlfile)'. – aroth

Antwort

3

Warum verwenden Sie XMLResourceParser, wenn Sie es als Textdatei lesen müssen? Warum nicht einfach einen BufferedReader mit StringBuilder verwenden? Um jedoch eine Datei aus dem Ordner xml resources zu lesen, versuchen Sie, sie in den raw-Ordner oder (falls möglich) in den Ordner mit den Assets zu verschieben.

Edit: die entsprechende Datei zu kopieren, können Sie über diesen Link: Copying XML from XML Resource to Device Storage

+0

+1 Verschieben Sie die Datei einfach nach res/raw und lesen Sie wie gewohnt. –

+0

Danke, es hat für mich funktioniert! – R4j

+0

Sie sind jederzeit willkommen! – SamSPICA