Avatar billede blod_1 Nybegynder
23. maj 2009 - 18:01 Der er 4 kommentarer og
1 løsning

Problemer med at læse i XML

Jeg har modificeret noget kode til at kunne læse mit eget

Set doc = CreateObject("MSXML.DOMDocument")

doc.Async = False
doc.Load(Server.MapPath("data_names.xml"))


Set medlemmer = doc.GetElementsByTagName("alias")
For Each dj in medlemmer
    For Each elm in dj.ChildNodes

        If(elm.NodeName = "uuid") Then
        if elm.FirstChild.NodeValue = Request.ServerVariables("HTTP_X-SecondLife-Owner-Key") then

            If(elm.NodeName = "altName") Then
                altName = elm.FirstChild.NodeValue
            end if

        end if
    end if
    Next
Next

' cleanup
Set medlemmer = Nothing
Set doc = Nothing

response.write "YES|" & altName


Men mit problem er at den kun skal læse der hvor uuid passer med den header den læser.

Selve XML filen ser således ud

<namelist>
<user>
<alias>
  <name>Dood Allen</name>
  <uuid>dce83176-7214-4649-b284-ba344b71799b</uuid>
  <altName>tralala</altName>
  <simName>FurNation Purgatory</simName>
  </alias>
  </user>
  </namelist>

Hvordan får jeg den til det? Og er der en måde som vil være smartere end sådan som jeg har bygget den xml op?
Avatar billede blod_1 Nybegynder
23. maj 2009 - 18:11 #1
Glemte helt noget, der hvor uuid passer, der skal den så gå ind og tjekke om simName er det samme som Request.ServerVariables("HTTP_X-SecondLife-Region")

Og når den har kigget alt igennem, så skal den enten sige YES|(altName)

hvis den har fundet en hvor uuid og simName passede sammen, ellers skal den skrive

NO|defaultName
Avatar billede blod_1 Nybegynder
25. maj 2009 - 10:34 #2
Fandt ud af noget


Set medlemmer = doc.GetElementsByTagName("alias")
For Each dj in medlemmer
    For Each elm in dj.ChildNodes

        If(elm.NodeName = "uuid") Then
        uuid = elm.FirstChild.NodeValue
    end if

    If(elm.NodeName = "altName") Then
        altName = elm.FirstChild.NodeValue
    end if

    If(elm.NodeName = "simName") Then
        simName = elm.FirstChild.NodeValue
    end if
    Next

if uuid = Request.ServerVariables("HTTP_X-SecondLife-Owner-Key") and simName = simID then
    responsename = altName
    Exit For
end if

Next


Men hvis andre har en bedre løsning må de meget gerne komme med den.
Avatar billede softspot Forsker
25. maj 2009 - 12:21 #3
Det må vist være noget i stil med det der sker i den anden tråd du har gang i ;-)

http://www.eksperten.dk/spm/876132
Avatar billede blod_1 Nybegynder
25. maj 2009 - 12:49 #4
Lige nøjagtigt :-D

Det kan perfekt flyttes over til denne istedet.
Avatar billede blod_1 Nybegynder
28. december 2009 - 14:40 #5
lukker
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