Avatar billede aspguf Nybegynder
09. november 2009 - 18:54 Der er 8 kommentarer og
1 løsning

Henten af data via xml fra fjærnserver

Hej jeg har prøve at trække lidt data oplysninger ud og er nu komme et stykke men mangler lige det siste som jeg ikke helt kan få til at virker

min xml fil ser sådan ud
<?xml version="1.0" encoding="ISO-8859-1"?>
<products xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Price.xsd">
    <group name="Test">
        <product id="1">
            <name>produkt 1</name>
            <price>100</price>
        </product>
        <product id="2">
            <name>produkt 2</name>
            <price>101</price>
        </product>
    </group>
    <group name="Gruppe 2">
        <product id="3">
            <name>produkt 3</name>
            <price>100</price>
        </product>
        <product id="4">
            <name>produkt 4</name>
            <price>101</price>
        </product>
    </group>
</products>

og min aspfil ser sådan ud..

<%@ Language="VBScript" %>
<html>
<head>
<title>Show i VBS demo</title>
</head>
<body>
<table border="0">
<%
Set objHttp = Server.CreateObject("Msxml2.XMLHTTP")
Set objdocx = CreateObject("MSXML.DOMDocument")
Call objHttp.Open ("GET", "http://www.domain.tld/XMLList.php", False)
objHttp.Send
Set objXML = objHttp.responseXML
If objXML.parseError.errorcode = 0 Then
    objdocx.Async = False
    objdocx.Load(objHttp.responseXML)
    Set grupper = objdocx.GetElementsByTagName("group")

    For Each grupe in Grupper
        Response.Write "<tr>" & vbCrLf
        Response.Write "    <td colspan='5'><a href='?gn=" & grupe.Attributes.GetNamedItem("name").Value & "'>" & grupe.Attributes.GetNamedItem("name").Value & "</a></td>" & vbCrLf
        Response.Write "</tr>" & vbCrLf
        For Each product in grupe.ChildNodes
            Response.Write "<tr>" & vbCrLf
            Response.write "    <td width='10'>&nbsp;</td>" & vbCrLf
            Response.Write "    <td width='20'>" & product.Attributes.GetNamedItem("id").Value & "</td>" & vbCrLf
            Response.write "    <td width='50'>&nbsp;</td>" & vbCrLf       
            Response.write "    <td>&nbsp;</td>" & vbCrLf
            Response.write "    <td width='20'>&nbsp;</td>" & vbCrLf               
            Response.Write "</tr>" & vbCrLf   
        next
    Next

Else
      Response.Write ("There was an error")
End If
set objdocx = Nothing
Set objHttp = Nothing
%>
</table>
</body>
</html>


Så langt så godt nu er mit problem at jeg gerne vil have min vare´s navn og priser ind men jeg kan ikke få det til at virker er der en der kan hjælp mig færdig..
Avatar billede keysersoze Guru
09. november 2009 - 19:00 #1
du bliver nødt til at udskrive lidt hjælpe-tekster undervejs - kommer du ind i din if-sætning If objXML.parseError.errorcode = 0 Then? Kommer du ind i dit loop For Each grupe in Grupper?
Avatar billede aspguf Nybegynder
09. november 2009 - 19:15 #2
Glemte at sige dette er min første script med xml så jeg håber på din forståles.
Avatar billede aspguf Nybegynder
09. november 2009 - 19:16 #3
<%
Set objHttp = Server.CreateObject("Msxml2.XMLHTTP")
Set objdocx = CreateObject("MSXML.DOMDocument")
Call objHttp.Open ("GET", "http://www.domain.tld/XMLList.php", False)
objHttp.Send
Set objXML = objHttp.responseXML
If objXML.parseError.errorcode = 0 Then 'Her ser vi om der er data
    objdocx.Async = False
    objdocx.Load(objHttp.responseXML)
    Set grupper = objdocx.GetElementsByTagName("group")

    For Each grupe in Grupper    'Her loop vi vores gruppper data

        Response.Write "<tr>" & vbCrLf
        Response.Write "    <td colspan='5'><a href='?gn=" & grupe.Attributes.GetNamedItem("name").Value & "'>" & grupe.Attributes.GetNamedItem("name").Value & "</a></td>" & vbCrLf
        Response.Write "</tr>" & vbCrLf
        For Each product in grupe.ChildNodes ' Her loop vi vores produkter under grupper..
            Response.Write "<tr>" & vbCrLf
            Response.write "    <td width='10'>&nbsp;</td>" & vbCrLf
            Response.Write "    <td width='20'>" & product.Attributes.GetNamedItem("id").Value & "</td>" & vbCrLf
            Response.write "    <td width='50'>&nbsp;</td>" & vbCrLf       
            Response.write "    <td>&nbsp;</td>" & vbCrLf
            Response.write "    <td width='20'>&nbsp;</td>" & vbCrLf               
            Response.Write "</tr>" & vbCrLf   
        next
    Next

Else
      Response.Write ("There was an error")
End If
set objdocx = Nothing
Set objHttp = Nothing
%>
Avatar billede keysersoze Guru
09. november 2009 - 19:25 #4
at udskrive debug-information har ikke noget med xml at gøre - det er ren asp;

Response.Write "Når vi mon hertil?"
Avatar billede aspguf Nybegynder
09. november 2009 - 20:22 #5
Jeg er ikke helt med på hvad du mender, men jeg få data ud fra xml. mit problem er jeg ikke kan få det til at hente vare navn en den vil godt give mig vare id..
Avatar billede keysersoze Guru
09. november 2009 - 20:34 #6
Det står fint forklaret i den artikel der blev linket til i dit tidligere spørgsmål;

medlem.SelectSingleNode("name/text()").NodeValue
Avatar billede aspguf Nybegynder
11. november 2009 - 22:56 #7
Jubii så fik jeg det til at virker hvis du smider et svar accpter jeg. og lukker.
Avatar billede keysersoze Guru
12. november 2009 - 19:18 #8
svar :)
Avatar billede keysersoze Guru
29. december 2009 - 11:38 #9
lukketid?
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

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