Avatar billede larsomania Nybegynder
01. maj 2002 - 15:39 Der er 9 kommentarer og
1 løsning

Løbe gennem en xml struktur og vise alle noder + indhold

Hejsa,

Er der nogen der har en stump kode til ASP der kan løbe
gennem et XML dokument loadet i en:

    Set xml = CreateObject("microsoft.xmldom")

Og vise alle nodenavne + indhold - ikke kun på første
niveau i dokumentet - men hele filen.

Udskriften skal ligne det originale dokument, fx.

<SeatMap_5_0>
    <SeatMapMods>
        <AirV>UA </AirV>
        <FltNum>1532</FltNum>
        <OpSuf/>
        <BIC>Y </BIC>
        <StartDt>20001201</StartDt>
        <StartCity>DEN  </StartCity>
        <EndCity>IAD  </EndCity>
        <NumSeats>2</NumSeats>
        <Spare><![CDATA[ ]]></Spare>
        <NameAry>
            <Name>
                <LName>DOE</LName>
                <FNameAry>
                    <FNameInfo>
                        <FName>JOHN</FName>
                        <FreqFlierID>UA </FreqFlierID>
                        <FreqFlierNum>1234567        </FreqFlierNum>
                    </FNameInfo>
                </FNameAry>
            </Name>
        </NameAry>
    </SeatMapMods>
</SeatMap_5_0>

Avatar billede medions Nybegynder
01. maj 2002 - 15:40 #1
Here you go... så er det bare at tilpasse scriptet!:

                <script language="JavaScript" type="text/javascript">
                          var conn = new ActiveXObject("Microsoft.XMLDOM");
                          conn.async = false;
                          conn.load("xml/forside.xml");
                                             
                          var rs1 = conn.getElementsByTagName("overskrift");
                          var n_rs = rs1.length
                          for (i = 0; i < n_rs; i++)
                          {
                          document.write("" + rs1.item(i).text + "<p>");
                          }
                                             
                          var rs2 = conn.getElementsByTagName("index");
                          var n_rs = rs2.length
                          for (i = 0; i < n_rs; i++)
                          {
                          strIndex = "" + rs2.item(i).text + "<p>";
                          }
                                             
                          strIndex = strIndex.replace(/\¤/g,"<p>");
                                             
                          document.write(strIndex);
                </script>

//>Rune
Avatar billede medions Nybegynder
01. maj 2002 - 15:41 #2
Du kunne oxo gøre det i ASP:

    <%
    Dim XMLDoc, rootNode, Visitor, Felt, Counter
    Set XMLDoc = Server.CreateObject("Microsoft.XMLDOM")
    XMLDoc.async = False
    XMLDoc.load(Server.MapPath("Guestbook.xml"))
    Counter = -1
    Set rootNode = XMLDoc.documentElement
    If rootNode.hasChildNodes() then   
      Response.Write "<TABLE WIDTH='400' BORDER='1'>"
          Response.Write "<FORM ACTION='./DeleteNode.asp' METHOD='Post'>"
            For Each Visitor in rootNode.childNodes
        Counter = Counter + 1
        For Each Felt in Visitor.childNodes
            If "NAME" = Felt.NodeName Then
                      Response.Write "<TR><TD ROWSPAN=2><INPUT TYPE='Radio' NAME='Besked' VALUE=" & Counter & "></TD><TD>Navn: " & Felt.Text & "</TD></TR>"
            ElseIf "DATO" = Felt.NodeName Then
              Response.Write "<TR><TD>Dato: " & Felt.Text & "</TD></TR>" & Chr(13) & Chr(10)
            End if
        Next
            Next
    Response.Write "</TABLE><BR>"
    Response.Write "<INPUT TYPE='Submit' VALUE='Slet Besked'>"
    Response.Write "</FORM>"
   
    Else
      Response.Write "Der er ingen beskeder i gæstebogen."   
    End If

    %>

//>Rune
Avatar billede larsomania Nybegynder
01. maj 2002 - 15:51 #3
Jeg har nu rettet til -

  xmlDoc.load ("c:\seatind.xml")

    Counter = -1
    Set rootNode = XMLDoc.documentElement
    If rootNode.hasChildNodes() then   
      Response.Write "<TABLE WIDTH='400' BORDER='1'>"
          Response.Write "<FORM ACTION='./DeleteNode.asp' METHOD='Post'>"
            For Each Visitor in rootNode.childNodes
        Counter = Counter + 1
        For Each Felt in Visitor.childNodes
         
            Response.Write("Navn " & Felt.Nodename & " har tekst " & Felt.Text & "<br>")
         
        Next
            Next
    Else
      Response.Write "Der er ingen beskeder i gæstebogen."   
    End If

Og får det her

Navn AirV har tekst UA
Navn FltNum har tekst 1532
Navn OpSuf har tekst
Navn BIC har tekst Y
Navn StartDt har tekst 20001201
Navn StartCity har tekst DEN
Navn EndCity har tekst IAD
Navn NumSeats har tekst 2
Navn Spare har tekst
Navn NameAry har tekst DOE JOHN UA 1234567

Den "pakker" ikke NameAry ud, men viser alle felter på samme linje.
Avatar billede medions Nybegynder
03. maj 2002 - 15:00 #4
Du har vidst ikke rigtig forstået koden... her får du lige XML dokumentet oxo, så kan du prøve at sammenligne koden med den:

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="Guestbook.xsl"?>
<BOOK TITLE="XML Gæstebogen">
    <VISITOR>
        <NAME>Anders Hansen</NAME>
        <DATO>10-06-00 15:51:00</DATO>
        <EMAIL>mcgyver@mcgyver.dk</EMAIL>
        <HOMEPAGE>www.mcgyver.dk</HOMEPAGE>
        <MESSAGE>
            <LINJE>Dette er den første version af min rene XML gæstebog.</LINJE>
            <LINJE></LINJE>
            <LINJE>Desværre er det kun Explorer 5.0 der understøtter XML-formatet nu.</LINJE>
            <LINJE></LINJE>
            <LINJE>Men jeg håber at du kan bruge den på din side</LINJE>
            <LINJE></LINJE>
        </MESSAGE>
    </VISITOR></BOOK>


//>Rune
Avatar billede larsomania Nybegynder
03. maj 2002 - 15:07 #5
Jow.. Men.. Som du kan se virker koden ikke på mit XML dokument, den
viser det ikke som jeg skal bruge det jo.
Avatar billede medions Nybegynder
03. maj 2002 - 15:19 #6
Her nu har jeg rettet den til for dig... - brug dit din gamle xmlfil, og brug denne kode:

<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
                <script language="JavaScript" type="text/javascript">
                          var conn = new ActiveXObject("Microsoft.XMLDOM");
                          conn.async = false;
                          conn.load("doc.xml");
                          //conn.load("c:\seatind.xml");
                                             
                          var rs1 = conn.getElementsByTagName("AirV");
                          var rs2 = conn.getElementsByTagName("FltNum");
                          var n_rs = rs1.length
                          for (i = 0; i < n_rs; i++)
                          {
                          strIndex1 = rs1.item(i).text;
                          strIndex2 = rs2.item(i).text;

                          document.write("" + strIndex1 + "<p>" + strIndex2 + "");
                          }
                </script>

</BODY>
</HTML>


//>Rune
Avatar billede medions Nybegynder
03. maj 2002 - 15:21 #7
hey forresten larsomania, dette er jo JavaScript, og ikke ASP.. - så du skla skrive nøjagtig hvad jeg skriver... Response.Write virker ikke i JavaScript...!

//>Rune
Avatar billede larsomania Nybegynder
03. maj 2002 - 15:21 #8
Tak.. Cool ;-)
Avatar billede medions Nybegynder
03. maj 2002 - 15:24 #9
Anytime ;-)

Thx 4 Poinz
//>Rune
Avatar billede mazymaze Nybegynder
14. maj 2002 - 17:07 #10
Det var da sjovt. Jeg sidder også med Galileo Seatmap XML i skrivende stund :)
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