Avatar billede spuncut Nybegynder
03. februar 2004 - 17:30 Der er 17 kommentarer og
1 løsning

ADO XML at få fat i data

ADO og XML

Jeg har save'd et persistent recordsæt med :

adoRecordset.Save App.Path & "\test.xml", adPersistXML

Hvorved jeg får noget XML :

<z:row id='{4692F23A-09F1-48E1-A3CB-006D11EABD2E}' filename='1982 Honda CB 1100 R.jpg' year='1982' make='Honda' model='CB 1100 R' displacement='Ukendt'/>


Data ligger som attributter, hvad jeg ikke lige havde forventet, men skide med det i første omgang.
Hvordan er det lige at jeg tilgår data i selve tagget, jeg har noget kode som ser såddan ud, kan det cirka bringes til at virke ..??    

Public Sub DisplayNode(ByRef Nodes As IXMLDOMNodeList, ByVal Indent As Integer)

    Dim sXml As String
    Dim xNode As IXMLDOMNode
    Indent = Indent + 2
    fMcRevy.lsMc.Clear
    For Each xNode In Nodes
          If xNode.nodeType = NODE_TEXT Then
            fMcRevy.lsMc.AddItem Space$(Indent) & xNode.parentNode.nodeName & ":" & xNode.Attributes.getNamedItem("make").nodeTypedValue
          End If
          sFileContent = sFileContent & Space$(Indent) & xNode.parentNode.nodeName & ":" & xNode.nodeValue
          If xNode.hasChildNodes Then
            DisplayNode xNode.childNodes, Indent
          End If
    Next xNode
     
End Sub

fMcRevy.lsMc er en list.

Please Please  MVH
Avatar billede spuncut Nybegynder
03. februar 2004 - 17:42 #1
Jeg skylder lige at sige at ovenstående eksempel er i vb, og at eksempler i vb-script/ASP er lige så velkomne.
tnx
Avatar billede nute Nybegynder
03. februar 2004 - 17:44 #2
xNode.Text

/nute
Avatar billede spuncut Nybegynder
03. februar 2004 - 17:49 #3
->nute: Giv mig lidt mere (er lidt på herrens mark).....
Avatar billede nute Nybegynder
03. februar 2004 - 17:56 #4
hm m... du skriver at du vil have ud data i selve tagget. da regner jeg med at du vil have ud teksten i selve tagget. Teksten i tagget kan du tilgå ved at bruge property'en 'Text' på din Node. Hvad er det egentlig du vil gøre. Kan godt forstå du vil have fat i data der ligger i selve tagget, men hvad skal du bruge det til ? skal du bare hive data ud uden at bruge det til noget, eller skal du lægge værdien over i en variabel, eller hvad ?

Spørgsmålet er vel egentlig: kender du denne kode selv ? hvor meget kender du til DOM ? Forstår du denne kode ?

et glimrende udgangspunkt er jo dokumentationen ;-) her står alle metoder, properties og alt du ønsker at vide om XML DOM ... det giver også et overblik over hvilke muligheder der er i DOM og den kan nok give dig en bedre forståelse af din kode:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk30/htm/xmmscxmlreference.asp?frame=true

/nute
Avatar billede spuncut Nybegynder
03. februar 2004 - 18:06 #5
->nute : fMcRevy.lsMc.AddItem skriver til en liste, og du har da fuldstændig ret i at jeg ikke er i stand til at stille et kvalificeret spørgsmål. så jeg vil da lige læse lidt og prøve at vende tilbage med en bedre beskrivelse.
tnx
Avatar billede spuncut Nybegynder
03. februar 2004 - 18:44 #6
Okææ helt simpelt :

Hvad skal jeg gøre her:

For Each xNode In Nodes
          MsgBox (xNode.?????)
Next xNode

for at få filename (altså "1982 Honda CB 1100 R.jpg") i messageboxen.

Fra fgl XML :


<rs:data>
    <z:row id='{4692F23A-09F1-48E1-A3CB-006D11EABD2E}' filename='1982 Honda CB 1100 R.jpg' year='1982' make='Honda'
        model='CB 1100 R' displacement='Ukendt'/>
</rs:data>

på forhånd tak
Avatar billede nute Nybegynder
03. februar 2004 - 21:40 #7
xNode.Attributes.getNamedItem("filename ").value

bør give dig indholdet i 'filename'

/nute
Avatar billede spuncut Nybegynder
04. februar 2004 - 00:21 #8
-> nute :  .value har jeg ikke. Jeg har .text men den gi'r en fejl.
Avatar billede nute Nybegynder
04. februar 2004 - 10:12 #9
fejl ? hvilken fejl ... det er nemmere at hjælpe hvis man ved hvad der går galt ;-)
Avatar billede spuncut Nybegynder
04. februar 2004 - 10:47 #10
xNode.Attributes.getNamedItem("filename").Text

giver fgl. fejl :

Run-time error 91 :
Object variable or With block variable not set
Avatar billede nute Nybegynder
04. februar 2004 - 11:33 #11
hmm ... får du lastet din XML i det hele taget ? hvordan deklareres dine namespaces ? kan du poste mere af din XML ... jeg vil gerne have starten af din XML helt ned til og med den første <z:row/> node

/nute
Avatar billede spuncut Nybegynder
04. februar 2004 - 11:46 #12
Den ligger her http://spuncut.com/test.xml .
Loaded ?? .. jo hvis jeg udskriver xNode.baseName får jeg det rigtige antal bokse med "z:row" ...så der er "hul igennem"
Avatar billede nute Nybegynder
04. februar 2004 - 11:53 #13
kigger lige på det ...
Avatar billede nute Nybegynder
04. februar 2004 - 13:26 #14
det må være fordi du faktisk ikke står på en <z:row/> node. jeg har gjort følgende:

lagt din fil i under "C:\_DEV\xperten\460627\test.xml", derefter har jeg oprettet et nyt "standard exe" VB project, inkluderet referencen "Microsoft XML, v4.0" lavet én knap og et textfelt (uden at ændre på nogen properties). derefter har jeg lagt denne kode ind på knappens "Click" event ... kører du denne, så vil du se at det fungerer

Private Sub Command1_Click()
    Dim objXML As DOMDocument40
    Set objXML = New DOMDocument40
   
    If (objXML.Load("C:\_DEV\xperten\460627\test.xml")) Then
        Dim xNode As IXMLDOMNode
        Dim objData As IXMLDOMNodeList
       
        Dim strResult As String
        strResult = ""
       
        Set objData = objXML.getElementsByTagName("z:row")
        For Each xNode In objData
            strResult = strResult & xNode.Attributes.getNamedItem("filename").Text & vbCrLf
        Next xNode

    Else
        Text1.Text = ":-("
    End If
    Text1.Text = strResult
End Sub

/nute
Avatar billede spuncut Nybegynder
04. februar 2004 - 15:52 #15
-> nute : Det virker bare... ;o) .Og jeg har lært noget om XML....Skriv et svar så du kan få pointene.
1000 Tak
Avatar billede nute Nybegynder
04. februar 2004 - 15:59 #16
det var så lidt :-) bare hyggelig at hjælpe

/nute
Avatar billede spuncut Nybegynder
04. februar 2004 - 16:02 #17
tnx
Avatar billede nute Nybegynder
04. februar 2004 - 16:04 #18
selv tak

:o]
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester