Avatar billede blood.dk Nybegynder
27. marts 2003 - 21:16 Der er 4 kommentarer og
1 løsning

Søgning og filtrering i en XML fil.

Jeg er ny begynder med XML og VBscript så jeg har brug for hjælp

Jeg tror at det er nemmest i VBscript da jeg gerne vil have resultatet prensenteret i html, men det ved jeg ikke.

Jeg har en XML fil med contacts som jeg gerne vil søge/filtrerer i. I på html har jeg et tekst felt hvor i man indtaster søgeordet og neden under en tabel med alle contacts. Nå det første bogatav er indtastet skal tabellen opdateres så det kun er contacts med søgeordet(bogstavet) der vises. Jeg vil bruge .OnChange til at køre scriptet. (jeg håber at det er forståligt)

Det skal søges i alle elementer i Contacts.

Min XML fil ser således ud: Lokal.XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<dataroot>
  <Contacts>
    <FullName>Roberto Perco</FullName>
    <FirstName>Roberto</FirstName>
    <LastName>Perco</LastName>
    <BusinessPhone>49 25 62 23 lok. 223</BusinessPhone>
    <Department>57</Department>
    <LokalNummer>223</LokalNummer>
  </Contacts>
  <Contacts>
    <FullName>Poul Erik Pedersen</FullName>
    <FirstName>Poul</FirstName>
    <LastName>Pedersen</LastName>
    <BusinessPhone>49 25 62 65 lok. 265</BusinessPhone>
    <Department>52</Department>
    <LokalNummer>265</LokalNummer>
  </Contacts>
  <Contacts>
    <FullName>Niels Mølgaard Pedersen</FullName>
    <FirstName>Niels</FirstName>
    <LastName>Pedersen</LastName>
    <BusinessPhone>49 25 62 78 lok. 278</BusinessPhone>
    <Department>54</Department>
    <LokalNummer>278</LokalNummer>
  </Contacts>
  <Contacts>
    <FullName>Matthias Nissen Pedersen</FullName>
    <FirstName>Matthias</FirstName>
    <LastName>Pedersen</LastName>
    <BusinessPhone>49 25 62 35 lok. 235</BusinessPhone>
    <Department>52</Department>
    <LokalNummer>235</LokalNummer>
  </Contacts>
  <Contacts>
    <FullName>Birger Olsen</FullName>
    <FirstName>Birger</FirstName>
    <LastName>Olsen</LastName>
    <BusinessPhone>49 25 62 39 lok. 239</BusinessPhone>
    <Department>39</Department>
    <LokalNummer>239</LokalNummer>
  </Contacts>
  <Contacts>
    <FullName>Lars Olesen</FullName>
    <FirstName>Lars</FirstName>
    <LastName>Olesen</LastName>
    <BusinessPhone>49 25 62 84 lok. 284</BusinessPhone>
    <Department>54</Department>
    <LokalNummer>284</LokalNummer>
  </Contacts>
  <Contacts>
    <FullName>Birte Olesen</FullName>
    <FirstName>Birte</FirstName>
    <LastName>Olesen</LastName>
    <BusinessPhone>49 25 62 50 lok. 250</BusinessPhone>
    <Department>25</Department>
    <LokalNummer>250</LokalNummer>
  </Contacts>
  <Contacts>
    <FullName>Omstilling/Reception</FullName>
    <FirstName>Omstilling/Reception</FirstName>
    <BusinessPhone>lok. 9 el.409</BusinessPhone>
    <Department>12</Department>
    <LokalNummer>409</LokalNummer>
  </Contacts>
  <Contacts>
    <FullName>Peter Nymann</FullName>
    <FirstName>Peter</FirstName>
    <LastName>Nymann</LastName>
    <BusinessPhone>49 25 62 10 lok. 210</BusinessPhone>
    <Department>12</Department>
    <LokalNummer>210</LokalNummer>
  </Contacts>
  <Contacts>
    <FullName>Niels Nygaard</FullName>
    <FirstName>Niels</FirstName>
    <LastName>Nygaard</LastName>
    <BusinessPhone>49 25 62 54 lok. 254</BusinessPhone>
    <Department>54</Department>
    <LokalNummer>254</LokalNummer>
  </Contacts>
</dataroot>


Jeg håber at der er nogle der kan hjælpe. Der er 60 piont til hjælperen. Det kan være let, men for er det de 60 point værd.
Avatar billede blood.dk Nybegynder
27. marts 2003 - 21:24 #1
Jeg håber at der er nogle der kan hjælpe. Der er 60 piont til hjælperen. Det kan være let, men for mig er det de 60 point værd.
Avatar billede blood.dk Nybegynder
28. marts 2003 - 18:22 #2
Hallo er der ikke nogle der kan hjælpe mig??? Er det overhoved den rigtige kategori??

Any kind of help is needed.

Hvis jeg kan hjælpes igang med at indlæse en XML fil så kan jag nok komme lidt vidre.
Avatar billede medions Nybegynder
30. marts 2003 - 14:24 #3
XML dokumentet:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--  Edited with XML Spy v4.2
  -->
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
  </note>

VBScript dokumentet:
<script type="text/vbscript">
set xmlDoc=CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("xml_note.xml")
document.write("<h1>Traversing the XML nodes</h1>")
for each x in xmlDoc.documentElement.childNodes
document.write("<b>" & x.nodename & "</b>")
document.write(": ")
document.write(x.text)
document.write("<br><br>")
next
</script>

//>Rune
Avatar billede blood.dk Nybegynder
30. marts 2003 - 23:51 #4
Hej og tak for tippet...
Jeg er kommet lidt vidrere nu kan jeg vil indholdet at xml filen i en tabel, men det kan jeg jo også med en xsl fil. Så ....

Men min kode ser således ud

<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Indtast et søgeord</title>

<script type="text/vbscript">
<!--
Sub T1_onkeyup
gif1.innerHTML = T1.value
End Sub
-->
</script>
</head>

<body>
<div align="center">
    <center>
        <Table border="1" width="300" cellpadding="3" cellspacing="3">
            <Tr>
                <TD  height="30" >
                    Indtast et søgeord.
                    <input type="text" name="T1" size="20">
                </TD>
            </TR>
            <TR>
                <TD  height="30" >
                    <SPAN id=gif1>&nbsp;</SPAN>
                </TD>
            </TR>
            <TR>
            <Table border="1" cellpadding="3" cellspacing="3">
                <script type="text/vbscript">
                    set xmlDoc=CreateObject("Microsoft.XMLDOM")
                    xmlDoc.async="false"
                    xmlDoc.load("contacts_test.xml")
                    set Nodes = xmlDoc.documentElement.childNodes
                    document.write("<TR> <TH>FullName</TH><TH>Department</TH><TH>Lokal</TH><TH>Phone</TH> </TR>")
                    for each x in Nodes
                    document.write("<TR>")
                    document.write("<TD>" & x.selectsinglenode("FullName").text & "</TD>")
                    document.write("<TD>" & x.selectsinglenode("Department").text & "</TD>")
                    document.write("<TD>" & x.selectsinglenode("LokalNummer").text & "</TD>")
                    document.write("<TD>" & x.selectsinglenode("BusinessPhone").text & "</TD>")
                    document.write("</TR>")
                    next
                </script>
            </TABLE>
            </TR>
        </TABLE>
    </center>
</div>
</body>

</html>


Jeg mangler så bare at filtere i filen, envtuelt ved at bruge SelectNodes(###) istedet for:
        set Nodes = xmlDoc.documentElement.childNodes

Eller ville det være nemmere hvis jeg smed hele dokmenter ind i et Array og så brugte VBscript's string funktioner.

Eller hvis du kender en bedre metode, så bare slå dig løs.
Avatar billede blood.dk Nybegynder
23. maj 2003 - 14:01 #5
Jeg gir op
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