Aktuelle Zeit: 14.07.2020 17:49

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: XML Download URL
BeitragVerfasst: 15.06.2015 13:18 
Offline
Benutzeravatar

Registriert: 12.04.2012 23:47
Wohnort: Hannover
Hallo,

in der Hilfe von Spiderbasic ist bei LoadXML folgendes zu lesen Loads a XML tree from an URL or a local file.
Wie bitte ist es möglich, per http ein XML File einzulesen, ich habe es nicht hinbekommen, die Samples sind ja noch recht bescheiden...

Danke für einen Tip


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: XML Download URL
BeitragVerfasst: 15.06.2015 13:51 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
eine lokale XML-Datei laden:

Code:
EnableExplicit

Procedure Loading(Type, Filename.s)
  Debug Filename + " loaded"
EndProcedure

Procedure LoadingError(Type, Filename.s)
  Debug Filename + ": loading error"
EndProcedure

#XML = 0

; Register the loading event before calling any resource load command
BindEvent(#PB_Event_Loading,      @Loading())
BindEvent(#PB_Event_LoadingError, @LoadingError())

LoadXML(#XML, "test.xml")


Wenn Du eine 'remote' XML-Datei laden möchtest, musst Du dementsprechend einen URL einsetzen:
Code:
LoadXML(#XML, "http://bla/test.xml")


Grüße ... Peter

_________________
Schrödingers Smiley :):


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: XML Download URL
BeitragVerfasst: 15.06.2015 14:16 
Offline
Benutzeravatar

Registriert: 12.04.2012 23:47
Wohnort: Hannover
Danke, aber leider gib es bei Laden immer Fehler, es scheint nix mit der XML zu tun zu haben, es passierte bei allen Testdaten so bei mir.


Code:
EnableExplicit

Procedure Loading(Type, Filename.s)
  Debug Filename + " loaded"
EndProcedure

Procedure LoadingError(Type, Filename.s)
  Debug Filename + ": loading error"
EndProcedure

#XML = 0

; Register the loading event before calling any resource load command
BindEvent(#PB_Event_Loading,      @Loading())
BindEvent(#PB_Event_LoadingError, @LoadingError())

LoadXML(#XML, "http://www.w3schools.com/xml/note.xml")


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: XML Download URL
BeitragVerfasst: 15.06.2015 14:27 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
Du kannst aus JavaScript heraus nicht beliebige XMLs von irgendwoher laden. Das muss der Server schon zulassen. Ein Blick in die Console Deines Browsers zeigt:

Zitat:
XMLHttpRequest cannot load http://www.w3schools.com/xml/note.xml?_=1434370739535. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:9086' is therefore not allowed access.


Abhilfe: Im obigen Fall beispielsweise einen kleinen PHP-Proxy schreiben, von dem Du dann die Daten anforderst. Solltest Du die XMLs von Deinem eigenen Server anfordern, dann in der entsprechenden Konfiguration des Servers ein Access-Control-Allow-Origin hinzufügen.

Grüße ... Peter

_________________
Schrödingers Smiley :):


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: XML Download URL
BeitragVerfasst: 15.06.2015 14:33 
Offline
Benutzeravatar

Registriert: 12.04.2012 23:47
Wohnort: Hannover
Danke Peter,

jetzt verstehe ich woher das Problem kommt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: XML Download URL
BeitragVerfasst: 15.06.2015 15:02 
Offline
Benutzeravatar

Registriert: 12.04.2012 23:47
Wohnort: Hannover
Ist es möglich eine WebGadget in einer Datei oder String umzuleiten, um das Cross-Origin zu umgehen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: XML Download URL
BeitragVerfasst: 15.06.2015 15:27 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
kunstlust hat geschrieben:
Ist es möglich eine WebGadget in einer Datei oder String umzuleiten, um das Cross-Origin zu umgehen?

nein, weil das WebGadget den gleichen Beschränkungen unterliegt.

SpiderBasic-Hilfe hat geschrieben:
- GetGadgetItemText(): The following constants can be used to get information (only works on the same page domain)

Wie geschrieben: von fremden Domains holt man sich die Daten am besten mit einem Proxy. Der hier dürfte beispielsweise funktionieren (ungetestet).

Grüße ... Peter

_________________
Schrödingers Smiley :):


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: XML Download URL
BeitragVerfasst: 15.06.2015 15:49 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
Kiffi hat geschrieben:
Wie geschrieben: von fremden Domains holt man sich die Daten am besten mit einem Proxy. [...].

Das hier reicht in der Regel schon:
Code:
<?PHP
   $url = $_GET['url'];
   $xml = simplexml_load_file($url);
   echo $xml->asXML();
?>

Abspeichern unter proxy.php und aufrufen mit:

Code:
LoadXML(#XML, "http://[DeinWebServer]/proxy.php?url=http://www.w3schools.com/xml/note.xml")


Wichtig: Das klappt nur mit einem auf den WebServer exportierten SpiderBasic-Projekt. Direkt aus dem Editor aufgerufen funktioniert es nicht, weil der interne WebServer (mongoose) nicht für PHP freigeschaltet ist (warum auch immer).

Grüße ... Peter

_________________
Schrödingers Smiley :):


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: XML Download URL
BeitragVerfasst: 15.06.2015 15:53 
Offline
Benutzeravatar

Registriert: 12.04.2012 23:47
Wohnort: Hannover
1000 Dank für deine Hilfe Peter :bounce:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: XML Download URL
BeitragVerfasst: 15.06.2015 17:34 
Offline
Benutzeravatar

Registriert: 12.04.2012 23:47
Wohnort: Hannover
Kannst du mir noch sagen warum das Beispiel CreateXML() aus der Hilfe nicht geht?

Code:
; Create xml tree
  xml = CreateXML(#PB_Any)
  mainNode = CreateXMLNode(RootXMLNode(xml), "Zoo")
 
  ; Create first xml node (in main node)
  item = CreateXMLNode(mainNode, "Animal")
  SetXMLAttribute(item, "id", "1")
  SetXMLNodeText(item, "Elephant")
 
  ; Create second xml node (in main node)
  item = CreateXMLNode(mainNode, "Animal")
  SetXMLAttribute(item, "id", "2")
  SetXMLNodeText(item, "Tiger")
 
  ; Display the xml
  Debug ComposeXML(x


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye