Srodne teme
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

XML i VB6 - primeri

[es] :: XML :: XML i VB6 - primeri

[ Pregleda: 6772 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kopca

Član broj: 14307
Poruke: 118
*.244.eunet.yu



Profil

icon XML i VB6 - primeri25.06.2004. u 12:57 - pre 241 meseci
Imam jednostavan XML fajl i treba mi vrednost (ili niz vrednosti) nekog cvora cije ime znam. MOlim za jednostavan primer neke f-je. Hvala...
kopca
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.bg.wifi.vline.verat.net.

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: XML i VB6 - primeri25.06.2004. u 13:57 - pre 241 meseci
Za ovo ti treba referenca na MSXML 4.0

Ako XML izgleda ovako nekako

Code:

<Settings>
    <Sekcija Ime="Folderi">
        <Parametar Ime="DefaultFolder" Vrednost="..\"/>
        <Parametar Ime="RootFolder" Vrednost="E:\"/>
    </Sekcija>
    <Sekcija Ime="General">
        <Parametar Ime="RefreshRate" Vrednost="1000"/>
    </Sekcija>
</Settings>


onda ovaj kod radi:

Code:

Option Explicit

Private Const mcstrSekcije = "//Settings/Sekcija"
Private Const mcstrFileName = "E:\test.xml"

Private Function CitajVrednost(Sekcija As String, Parametar As String) As String
    Dim xmlDoc          As MSXML2.DOMDocument40
    Dim xmlSekcijaNd    As MSXML2.IXMLDOMNode
    Dim xmlParamNd      As MSXML2.IXMLDOMNode
    Dim xmlAttNd        As MSXML2.IXMLDOMAttribute
    
    Set xmlDoc = New MSXML2.DOMDocument40
    
    If xmlDoc.Load(mcstrFileName) Then
        Set xmlSekcijaNd = xmlDoc.selectSingleNode(mcstrSekcije & "[@Ime=""" & Sekcija & """]")
        If Not xmlSekcijaNd Is Nothing Then
            Set xmlParamNd = xmlSekcijaNd.selectSingleNode("Parametar[@Ime=""" & Parametar & """]")
            If Not xmlParamNd Is Nothing Then
                Set xmlAttNd = GetAttributeNode(xmlParamNd, "Vrednost")
                If Not xmlAttNd Is Nothing Then
                    CitajVrednost = xmlAttNd.Value
                Else
                    MsgBox "can not find attribute"
                End If
            Else
                MsgBox "can not find param"
            End If
        Else
            MsgBox "can not find section"
        End If
    Else
        MsgBox "can not load xml ..."
    End If
End Function


Private Function GetAttributeNode(vxmlElement As MSXML2.IXMLDOMNode, vstrAttributeName As String) _
As MSXML2.IXMLDOMAttribute
    On Error Resume Next
    
    Dim xmlElem As MSXML2.IXMLDOMElement
    Dim xmlDoc  As MSXML2.DOMDocument40
    
    If vxmlElement Is Nothing Then Exit Function
       
    Select Case vxmlElement.nodeType
        Case NODE_ATTRIBUTE
            Set GetAttributeNode = vxmlElement
        Case NODE_ELEMENT
            Set xmlElem = vxmlElement
            Set GetAttributeNode = xmlElem.GetAttributeNode(vstrAttributeName)
        Case NODE_DOCUMENT
            Set xmlDoc = xmlElem
            Set GetAttributeNode = xmlDoc.Attributes(vstrAttributeName)
    End Select
    
End Function

Private Sub cmdReadXML_Click()
    Debug.Print "Folderi", "RootFolder", CitajVrednost("Folderi", "RootFolder")
    Debug.Print "Folderi", "DefaultFolder", CitajVrednost("Folderi", "DefaultFolder")
    Debug.Print "General", "RefreshRate", CitajVrednost("General", "RefreshRate")
End Sub


Poenta je napraviti sto vise funkcija kao sto je ova GetAttributeNode. Znaci GetNode, GetNodeList, GetAttributeValue, ..., to spakovati u modul i onda je lako raditi sa bilo kojom strukturom XML fajla. Imas na MS sajtu dosta sampleova koji sadrze ovakve funkcije.

Mislim da bi neko od "ovlascenih lica" trebao da prebaci ovo u VB&ASP forum, ili bar do cekaonice.

 
Odgovor na temu

[es] :: XML :: XML i VB6 - primeri

[ Pregleda: 6772 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Srodne teme
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.