Oppure

Loading
17/06/11 12:49
riddick
Inizio subito subito a dare guai :)
Allora, se qualcuno di voi usa Android, può usare il programmino SMSBackup per salvare i propri sms. Queso programma salva gli sms in file XML, il mio problema nasce dal voler leggere questi file sul pc e quindi sto cercando di farmi un programmino per leggerli. L'XML è così strutturato
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<smses count="39">
  <sms protocol="0" address="numero tel" date="1304457182465" type="1" subject="null" body="testo messaggio" toa="null" sc_toa="null" service_center="+393358824001" read="1" status="-1" locked="0" />
  <sms protocol="0" address="numero tel" date="1304457182465" type="1" subject="null" body="testo messaggio" toa="null" sc_toa="null" service_center="+393358824001" read="1" status="-1" locked="0" />
.......
.......
</smses>

Ho iniziato a fare il programma ma non riesco in alcune cose. Premetto che uso MSXML6. Il programma che ho fatto è:
Public xmlReader As New DOMDocument
Dim node As IXMLDOMElement
Dim indir As String
Dim testo As String
Dim data As String

Private Sub Form_Load()
xmlReader.async = False
xmlReader.Load ("pathfile")
Set node = xmlReader.selectSingleNode("//sms")
indir = node.getAttribute("address")
testo = node.getAttribute("body")
data = node.getAttribute("date")
xmlData.Text = "Numero: " & indir & Chr(9) & "Data: " & data & vbCrLf & "Testo: " & vbCrLf & testo & vbCrLf
End Sub

In questo modo riesco a leggere gli attributi che mi interessano e metterli nella textbox, ma non riesco a fare un ciclo per processare tutto il nodo smses e quindi i singoli nodi sms con i loro attributi. Come posso risolvere?
aaa
17/06/11 13:02
HeDo
perchè non hai una vaga idea di cos'è XPath :)
cerca documentazione, su google c'è il mondo su MSXML6
aaa
17/06/11 13:45
riddick
Ho inserito
xmlReader.setProperty "SelectionLanguage", "XPath"
Set node = xmlReader.documentElement.selectSingleNode("//sms")

ma non mi restituisce la lunghezza del nodo. Non riesco a capire come devo fare :d

EDIT:
Ho risolto, ora riesco ad avere la lunghezza...ma usando un ciclo for, mi da sempre il primo messaggio...non li scorre. come devo fare? :)

EDIT2:
Ho ufficialmente risolto ^^ Grazie mille comunque :pat:
Ultima modifica effettuata da riddick 17/06/11 14:36
aaa
18/06/11 16:21
gibra
Come ho già scritto in altre occasioni, lo spirito del forum è quello di condividere soluzioni (oltre che porre quesiti).
Se ognuno si tenesse per sé le soluzioni, i forum sarebbero solo pieni di problemi irrisolti, quindi di nessuna utilità.

Posta la tua soluzione, potrebbe tornare utile ad altri in futuro.

:)
aaa
18/06/11 18:22
riddick
Postato originariamente da gibra:

Come ho già scritto in altre occasioni, lo spirito del forum è quello di condividere soluzioni (oltre che porre quesiti).
Se ognuno si tenesse per sé le soluzioni, i forum sarebbero solo pieni di problemi irrisolti, quindi di nessuna utilità.

Posta la tua soluzione, potrebbe tornare utile ad altri in futuro.

:)


Anche qui non posso far altro che darti ragione ^^
Ecco qua come ho risolto

Set node = xmlReader.documentElement.selectNodes("//sms")

For i = 0 To node.length - 1
    Set str = node.Item(i)
    indir = str.getAttribute("address")
    testo = str.getAttribute("body")
    xmlData.Text = xmlData.Text & "Numero: " & indir & Chr(9) & vbCrLf & "Testo: " & testo & vbCrLf & vbCrLf
Next i
aaa