Autore Topic: Riferimenti res/raw  (Letto 160 volte)

Offline traficante.donato

  • Nuovo arrivato
  • *
  • Post: 11
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    sansung s3
  • Sistema operativo:
    Windows
Riferimenti res/raw
« il: 28 Novembre 2016, 08:36:46 CET »
0
Buongiorno a tutti,

dovrei passare un oggetto di tipo File  ad un metodo.

public void parseXml(File xmlUrl)

il file in questione si trova in questa posizione /res/raw  (cartella creata da me)

ho provato con la seguente sintassi ma non va (R.id.nomefile.xml), errore .  nomefile cannot be resolved  or is not a field

errore del log:
11-28 08:47:58.862: E/DomParsing(19256): java.io.FileNotFoundException: /res/raw/note.xml: open failed: ENOENT (No such file or directory)


potete aiutarmi ?

Grazie
« Ultima modifica: 28 Novembre 2016, 08:49:47 CET da traficante.donato »

Offline LinkOut

  • Utente normale
  • ***
  • Post: 265
  • Respect: +36
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi Mi5
Re:Riferimenti res/raw
« Risposta #1 il: 28 Novembre 2016, 09:06:03 CET »
0
Per accedere alla tua risorsa devi usare qualcosa del genere:

Codice (Java): [Seleziona]
getResources().openRawResource(R.raw.tuoFile)

Offline traficante.donato

  • Nuovo arrivato
  • *
  • Post: 11
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    sansung s3
  • Sistema operativo:
    Windows
Re:Riferimenti res/raw
« Risposta #2 il: 28 Novembre 2016, 09:17:00 CET »
0
Il metodo che prende in input la risorsa richiede un oggetto di tipo File, con il seguente codice:

Codice (Java): [Seleziona]
getResources().openRawResource(R.raw.tuoFile)
gli passo un InputStream [/size][/font] :(

Offline LinkOut

  • Utente normale
  • ***
  • Post: 265
  • Respect: +36
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi Mi5
Re:Riferimenti res/raw
« Risposta #3 il: 28 Novembre 2016, 09:40:34 CET »
0
Sì esatto, pensavo che il tuo obiettivo fosse quello di parsare il file XML...
Codice (Java): [Seleziona]
Xml.parse(...); perciò ti ho fatto quell'esempio

Prova a dare un occhiata quì https://developer.android.com/training/basics/network-ops/xml.html, magari ti può aiutare.

Offline traficante.donato

  • Nuovo arrivato
  • *
  • Post: 11
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    sansung s3
  • Sistema operativo:
    Windows
Re:Riferimenti res/raw
« Risposta #4 il: 28 Novembre 2016, 16:56:18 CET »
0
Grazie per la risposta,

sto studiando l'argomento che mi hai consigliato.

Ma ho questo problema

Codice (Java): [Seleziona]
  while (parser.next() != XmlPullParser.END_TAG) {
 String name = parser.getName();
                        String testo = parser.getText();
                        Log.d("****** P.A.R.S.E.", " - nodo " + name + " "  + testo);
}

con questo ciclo while dovrei analizzare tutto il file  xml, e vorrei avere il risultato di stampare (e poi salvare ) il nome del nodo col il suo valore interno.

Il file xml è il seguente
Codice: [Seleziona]
<libri>
  <libro>
    <autore>J.K.Rowlings</autore>
    <titolo>Harry Potter e la pietra filosofale</titolo>
    <editore>Salani</editore>
  </libro>
  <libro>
    <autore>J.R.Tolkien</autore>
    <titolo>Il signore degli Anelli</titolo>
    <editore>Bonpiani</editore>
  </libro>
</libri>

il risutato ottenuto è questo :
1-28 16:49:56.292: D/****** P.A.R.S.E.(468): Sono nel while 0
11-28 16:49:56.292: D/****** P.A.R.S.E.(468):  - nodo null
11-28 16:49:56.292: D/****** P.A.R.S.E.(468):   
11-28 16:49:56.292: D/****** P.A.R.S.E.(468): Sono nel while 1
11-28 16:49:56.292: D/****** P.A.R.S.E.(468):  - nodo libro null
11-28 16:49:56.292: D/****** P.A.R.S.E.(468): Sono nel while 2
11-28 16:49:56.292: D/****** P.A.R.S.E.(468):  - nodo null 
11-28 16:49:56.292: D/****** P.A.R.S.E.(468):     
11-28 16:49:56.292: D/****** P.A.R.S.E.(468): Sono nel while 3
11-28 16:49:56.292: D/****** P.A.R.S.E.(468):  - nodo autore null
11-28 16:49:56.292: D/****** P.A.R.S.E.(468): Sono nel while 4
11-28 16:49:56.292: D/****** P.A.R.S.E.(468):  - nodo null J.K.Rowlings
11-28 16:49:56.292: D/****** P.A.R.S.E.(468): Lungezza LIST 0
11-28 16:49:56.292: D/****** P.A.R.S.E.(468): Sono nel READDEED
11-28 16:49:56.292: D/****** P.A.R.S.E.(468): Sono nel while 0
11-28 16:49:56.292: D/****** P.A.R.S.E.(468):  - nodo null 
11-28 16:49:56.292: D/****** P.A.R.S.E.(468):     
11-28 16:49:56.292: D/****** P.A.R.S.E.(468): Sono nel while 1
11-28 16:49:56.292: D/****** P.A.R.S.E.(468):  - nodo titolo null
11-28 16:49:56.292: D/****** P.A.R.S.E.(468): Sono nel while 2
11-28 16:49:56.292: D/****** P.A.R.S.E.(468):  - nodo null Harry Potter e la pietra filosofale
11-28 16:49:56.292: D/****** MainActivity(468): FINITO PARSE

Grazie in anticipo per l'aiuto

Offline LinkOut

  • Utente normale
  • ***
  • Post: 265
  • Respect: +36
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi Mi5
Re:Riferimenti res/raw
« Risposta #5 il: 29 Novembre 2016, 09:46:06 CET »
0
Ciao, stai sbagliando sicuramente qualcosa... prova a seguire questo esempio: Android XML Parsing Tutorial è molto più chiaro...

Saluti