Toon posts:

[ASP / XML] hoe XML bestand inlezen via ASP?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben al 3 dagen op zoek naar een goede overzichtelijke methode om simpelweg een XML bestandje in te lezen en de data die tussen de tags staat eruit te halen met een For Each loop. Zeg maar dat dit mijn XML bestandje is:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<data>
 <laag1>
  <laag2>
   <naam>Naam</naam>
   <plaats>Plaats</plaats>
  </laag2>
  <laag2>
   <naam>Naam</naam>
   <plaats>Plaats</plaats>
  </laag2>
  <laag2>
   <naam>Naam</naam>
   <plaats>Plaats</plaats>
  </laag2>
 </laag1>
 <laag1>
  <laag2>
   <naam>Naam</naam>
   <plaats>Plaats</plaats>
  </laag2>
  <laag2>
   <naam>Naam</naam>
   <plaats>Plaats</plaats>
  </laag2>
  <laag2>
   <naam>Naam</naam>
   <plaats>Plaats</plaats>
  </laag2>
 </laag1>
</data>

Hoe krijg ik dan nu de inhoud van laag1 en 2 en de namen en plaatsen? De informatie moet er als volgt uitgehaald worden:
code:
1
2
3
4
5
6
7
8
9
10
For Each laag2 in laag1 %>
<table>
 <tr>
  <td>Naam: <naam></td>
 </tr>
 <tr>
  <td>Plaats: <plaats></td>
 </tr>
</table>
<% Next %>

Ik weet dat dat laag 2 xmlDoc.parent.childnodes ofzo benoemt moet worden, maar hoe precies weet ik niet. En hoe ik dat naam en plaats data eruit kan vissen weet ik ook niet.

Ik hoop snel een replytje te krijgen, want ik zit erg vast. Script graag in VBscript, JScript is klote. doei

tmmk

  • Juup
  • Registratie: Februari 2000
  • Niet online
Gebruik je een of andere built-in functie van ASP hiervoor? Zo ja: welke? Heb je er documentatie over?

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


Verwijderd

Topicstarter
Ik weet niet precies wat je bedoelt met built-in functie. Als ik het goed begrijp: Ik dacht eraan om een ADO connectie te leggen met het XML document en de informatie eruit te lezen.

En over die documentatie: Of je bedoelt of ik boeken heb: nee, nou ja e-books, maar die lezen klote. (of je moet ze uitprinten (maar dan ga ik toch liever naar de bibliotheek (want hersens groeien in de bibliotheek))) :D doei

tmmk

Verwijderd

Je oet gewoon ff een tutorial leven over 'Hoe maak ik een XSL?' :)

Verwijderd

Met deze code kun je sowieso een XML bestand van een willekeurige server openen en door de nodes lopen...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<%
    response.buffer=true

    Dim xmlDoc
    dim strURL, strBody, strPageName, strCSSHeader, strCSSBody, strTemplateName, strSearchResult, strCurrentLanguage, sURL, sHtml, dummy, strPageHref, strSearchFor, strTopImage
    dim iSearchIndex

    'Create XML object
    Set xmlDoc = Server.CreateObject("MSXML2.DOMDocument")

    'Create HTTP (non-xml) object 
    set http = Server.Createobject("msxml2.xmlhttp.3.0")
    
    'Load the remote XML file
    xmlDoc.setProperty "ServerHTTPRequest", true
    xmlDoc.async = false
    xmlDoc.load(strURL & "/search/search.xml")
    
    'Handle parse errors 
    if xmlDoc.parseerror.errorcode <> 0 then
        if xmlDoc.parseerror.errorcode=-2147012889 then 
            response.write CST_NL_INCORRECTURL
        else
            response.write xmlDoc.parseerror.reason
        end if
        response.end
    end if  
    
    'Itterate through XML-tree and try to find matching keywords
    for k = 0 to xmlDoc.DocumentElement.Childnodes(i).Childnodes.Length-1
        strBody = xmldoc.documentElement.childNodes(i).childnodes(k).text
        strPageName = xmldoc.documentelement.childNodes(i).childnodes(k).getattribute("name")
        dummy = xmldoc.documentElement.childNodes(i).childnodes(k).getattribute("href")
        strPageHref = strURL & "/" & dummy
    next
        
%>

Verwijderd

Topicstarter
Ik ben echt bijna nieuw tot XML en ASP tegelijk. Dus ik kan ASP, ik kan een beetje XML, maar ik kan de verbinding niet goed krijgen. Aan dat bestand hierboven heb ik niet zoveel. Laat ik het ff "clear" opschrijven wat de 2 bestanden zijn. (Dan snap je ook waarvoor ik het ga gebruiken):

Het XML bestand ziet er (verkort) zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?xml version="1.0"?>
<data>
 <pretparken>
  <pretpark>
   <naam>Efteling</naam> 
   <plaats>Kaatsheuvel</plaats> 
   <omschrijving>Hier de omschrijving</omschrijving> 
   <site>Site</site>
  </pretpark>
  <pretpark>
   <naam>Six Flags Holland</naam> 
   <plaats>Dronten</plaats> 
   <omschrijving>Hier de omschrijving</omschrijving> 
  </pretpark>
 </pretparken>
 <bezienswaardigheden>
  <bezienswaardighed>
   <naam>De Dom</naam>
   <plaats>Utrecht</plaats>
   <omschrijving>Hoogste kerktoren van Nederland in hartje Utrecht.</omschrijving>
  </bezienswaardighed>
  <bezienswaardighed>
   <naam>De Dam</naam>
   <plaats>Amsterdam</plaats>
   <omschrijving>Groot plein in het hart van onze hoofdstad. Hier vind je gewoon teveel om op te noemen.</omschrijving>
  </bezienswaardighed>
 </bezienswaardigheden>
</data>

En dan is de pagina indeling alsvolgt:

Hier logo Advertentie ruimte

Menu Inhoud pagina

De code van de links van het menu werken met querystrings: index.asp?page=pretparken.

En dan wilde ik het dus zo maken dat je door middel van een For Each in loop de nodige informatie eruit kan halen:
code:
1
2
3
4
5
6
For Each pretpark in pretparken %> 'pretparken kun je krijgen 
'door Request.Querystring("page") te doen en pretpark 
'gewoon - 2 de laatste 2 letters. (vandaar bezienswaardighed)
<table>
En dan hier gewoon een tabletje waar de inhoud van elke tag opgeroepen worden in een tabelletje.
</table>

Ik vraag dus eigenlijk alleen om het "opvraag, verwerkings, output" script in ASP. Dus niet om door alle nodes heen te vliegen maar alleen degene die ik nodig heb. alvast bedankt en doei

tmmk

  • Juup
  • Registratie: Februari 2000
  • Niet online
Op dinsdag 23 juli 2002 12:32 schreef tmmk het volgende:
Aan dat bestand hierboven heb ik niet zoveel.
!!!!!!! Die post van powder_tony is juist zeer waardevol voor jou. Lezen overtypen en doen!
doei

tmmk
Lees de FAQ, we groeten elkaar hier niet.

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Als je XML wilt omzetten naar een XHTML presentatie is XSLT een veel aantrekkelijkere optie dan het adhoc implementeren van de transformatie in wat voor imperatieve taal dan ook.

Het leren van XSLT is wellicht een investering, maar is dit imho meer dan waard. Hier [url="http://www.xfront.com/xsl.zip"]http://www.xfront.com/xsl.zip[/url] kan je in PowerPoint vorm een aardige introductie in het transformeren van XML naar HTML met behulp van XSLT vinden.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
Op dinsdag 23 juli 2002 12:35 schreef Jaaap het volgende:

!!!!!!! Die post van powder_tony is juist zeer waardevol voor jou. Lezen overtypen en doen!
Maar ik snap er niks van. Daarom wil ik vragen of jullie een script voor mij kunnen schrijven, met een For Each loop erin en duidelijk wat ik precies moet doen.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
tmmk: Daarom wil ik vragen of jullie een script voor mij kunnen schrijven
Script-requests zijn hier niet toegestaan en je hebt al aardig wat nuttige informatie gekregen waarmee je zelf aan de slag zou moeten kunnen. Als dit allemaal acradabra voor je is, moet je je wellicht even afvragen of je eerst wat eenvoudigers moet proberen te implementeren om zo meer ervaring op te doen :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
Ja, ik denk dat je gelijk hebt. In ieder geval bedankt voor de hulp.

Mocht iemand mij toch nog de hulp willen bieden die ik vraag, post het hieronder.

  • ErectionJackson
  • Registratie: April 2000
  • Laatst online: 23-06-2017

ErectionJackson

Ff testen hoe lang een onderti

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
objXML.load(Server.MapPath("file.xml"))
Set root = objXML.documentElement
%>

<% For a = 0 To root.childNodes.length - 1 %>
<% For b = 0 To root.childNodes(a).childNodes.length - 1 %>
<table>
 <tr>
  <td>Naam: <%=root.childNodes(a).childNodes(b).childNodes(0).text%></td>
 </tr>
 <tr>
  <td>Plaats: <%=root.childNodes(a).childNodes(b).childNodes(1).text%></td>
 </tr>
</table>
<% Next %>
<% Next %>

Ik heb het niet getest, maar zoiets moet het worden volgens mij :)

Microsoft SharePoint oplossingen | www.onlinesamenwerken.nl | Persian Dance Helia


Verwijderd

Topicstarter
ErectionJackson, (:|) heel erg bedankt, moet nog een beetje wennen aan de GoT regels (geen doei zeggen enzo), maar mag bedanken? :D

Ik kan nu weer avonden en soms nachten lang lekker door XML'en, ASP'en, en XSL'en (ik moet nog veel leren). doe, oh nee mocht niet...

  • ErectionJackson
  • Registratie: April 2000
  • Laatst online: 23-06-2017

ErectionJackson

Ff testen hoe lang een onderti

Succes ermee ;)

Microsoft SharePoint oplossingen | www.onlinesamenwerken.nl | Persian Dance Helia

Pagina: 1