Avatar billede pixeldude Nybegynder
01. juni 2003 - 03:37 Der er 3 kommentarer og
1 løsning

XML/DOM: problemer med udtræk fram XML

Jeg henter en XML fil ind på denne måde:

Set objDom = Server.CreateObject("MSXML2.DOMDocument.3.0")
objDom.load Server.mappath("xml/logfile.xml")

Set objentry = ObjDom.selectNodes("/logfile//entry")

Alle entry elemterne har en attribut der hedder date.

Hvordan looper mit object igennem og udskriver attributten for hvert element.
Jeg ved godt at det er noget med løkker, men hvordan får jeg dem pillet ud en af gangen?

Et eksempel ville være dejligt.
Avatar billede soes Nybegynder
01. juni 2003 - 04:28 #1
ved ikke om du kan bruge dette til noget, tvivler lidt, sorry

Function ReadXml(strXmlPath, field)
    Dim ElemList
    Dim xmlDoc
    Set xmlDoc = Server.CreateObject("Microsoft.XmlDom")
        xmlDoc.async = False
        xmldoc.resolveExternals = False
        xmlDoc.load(strXmlPath)
    Set ElemList = xmlDoc.getElementsByTagName(field)
        If field = "dir" Then
            For i=0 To (ElemList.length -1)
                strTmp = strTmp & "<a href='default.asp?dir=" & strDir & "/" & ElemList.item(i).Text & "' class='"& field &"'>" & ElemList.item(i).Text & "</a><br>" & vbcrlf
            Next
        Else
            For i=0 To (ElemList.length -1)
                strTmp = strTmp & "<a href='default.asp?getFile=" & strDir & "/" & ElemList.item(i).Text & "' class='"& field &"'>" & ElemList.item(i).Text & "</a><br>" & vbcrlf
            Next
        End If
       
    Set ElemList = Nothing
    Set xmlDoc = Nothing
   
    ReadXml = strTmp
End Function
Avatar billede pixeldude Nybegynder
01. juni 2003 - 06:35 #2
Hvis du kan hjælpe mig med mit næste problem så er pointene dine.
Nu ser min kode således ud:
<%
Set objDom = Server.CreateObject("MSXML2.DOMDocument.3.0")
objDom.load Server.mappath("xml/logfile.xml")

Set attDate = objDom.getElementsByTagName("@dato")

For i = 0 To (attDate.length - 1)
    If not left(attDate.item(i).text, 10) = strActual then
        strCount = 1
    Else
        strCount = strCount + 1
    End If
   
    strActual = left(attDate.item(i).text, 10)
    response.write left(attDate.item(i).text, 10) & " " &strCount & "<br>"
Next
%>

Og du kan se det i funktion her http://www.dammark.net/graph.asp

Nu til selve spørgsmålet.  Som du kan se viser den alle datoerne, men jeg vil kun have den til at vise en dato 1 gang og så med det samlede antal besøgende for den dato?
Avatar billede soes Nybegynder
01. juni 2003 - 17:37 #3
du kan lige proeve med dette:
<%
Set objDom = Server.CreateObject("MSXML2.DOMDocument.3.0")
objDom.load Server.mappath("xml/logfile.xml")

Set attDate = objDom.getElementsByTagName("@dato")

For i = 0 To (attDate.length - 1)
    If not left(attDate.item(i).text, 10) = strActual then
        strCount = 1
    Else
        strCount = strCount + 1
    End If
   
    strActual = left(attDate.item(i).text, 10)
   
    If strActual = strTmp OR strCount = 1 Then
    intTmpCount = intTmpCount + strCount
    Else
    response.write strAcutal & " " & intTmpCount & "<br>"
    End If
    strTmp = strActual
Next
%>
Avatar billede pixeldude Nybegynder
01. juni 2003 - 17:54 #4
Det giver slet ikke noget output
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