Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-12-2008, 20:23   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2008
Beiträge: 114
XML mit HTTPService auslesen

Hallo,

ich bins wieder

Ich habe eine Komponente geschrieben die über HTTPService eine php datei anspricht die XML zurückgibt.

Komponente
Code:
  
<?xml version="1.0"?>
<fs:XP_newsWnd title="News" height="375" click="getNewsHTTPService.send();"
        paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom="10"
        visible="true" xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:fs="*" borderColor="#4EC4F0" backgroundColor="#8CDEEA"> 
         <mx:TabNavigator id="tn"  width="100%" height="100%">    
           <mx:VBox label="News">
                <mx:Label text="TabNavigator container panel 1"/>
            </mx:VBox>
            <mx:Canvas label="Search" width="100%" height="100%" id="canvas1">
            </mx:Canvas>
        </mx:TabNavigator>
         <mx:HTTPService id="getNewsHTTPService"
				result="getNews(event)"
				method="POST"
				url="http://localhost/xp/getNews.php"
				useProxy="false">
		</mx:HTTPService>
    
</fs:XP_newsWnd>

xml das durch die php datei erzeugt wird
Code:
<allNews>
<news author="admin" subject="Release 0.2.5 in a few Days" content="Ich bin Blindtext. Von Geburt an." date="2008-12-22 17:06:37"></news>
<news author="admin" subject="Download Release 0.2.5 NOW" content="Achtung! Dieser Blindtext" date="2008-12-22 17:07:37"></news>
</allNews>
die Methode die HTTPService als result auf ruft:
Code:
public function getNews(event:ResultEvent):void{
			var xmlMap:XMLDocument = new XMLDocument();
			xmlMap.ignoreWhite = true;
			xmlMap.parseXML(event.target.data);
			for(var i:Number = 0; i < xmlMap.firstChild.childNodes.length; i++) {
				trace(1);
			}
			
		}

Und nun zu meinem Problem...
Ich habe um erstmal zu testen ob das auslesen klappt durch ein klick event auf die komponente getNewsHTTPService.send() aufgerufen und bekam erst die Meldung das die XML Syntax nicht korrekt wäre weil nicht geschlossen.
Was auch korrekt war, ich hatte die </news> vergessen.

Das habe ich gefixt und bekam darauf folgenden Fehlermeldung aus der ich nicht schlau werde:
Code:
ReferenceError: Error #1069: Eigenschaft data für mx.rpc.http.mxml.HTTPService nicht gefunden und es ist kein Standardwert vorhanden.
	at XP_newsWnd/getNews()[C:\Users\Sythus\Documents\Flex Builder 3\XpirewavePublisher\src\XP_newsWnd.as:18]
	at fs.comp.subcomp::xp_newsWnd/__getNewsHTTPService_result()[C:\Users\Sythus\Documents\Flex Builder 3\XpirewavePublisher\src\fs\comp\subcomp\xp_newsWnd.mxml:26]
	at flash.events::EventDispatcher/dispatchEventFunction()
	at flash.events::EventDispatcher/dispatchEvent()
	at mx.rpc.http.mxml::HTTPService/http://www.adobe.com/2006/flex/mx/internal::dispatchRpcEvent()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\http\mxml\HTTPService.as:290]
	at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::resultHandler()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:193]
	at mx.rpc::Responder/result()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\Responder.as:43]
	at mx.rpc::AsyncRequest/acknowledge()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:74]
	at DirectHTTPMessageResponder/completeHandler()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\messaging\channels\DirectHTTPChannel.as:403]
	at flash.events::EventDispatcher/dispatchEventFunction()
	at flash.events::EventDispatcher/dispatchEvent()
	at flash.net::URLLoader/onComplete()
Ich habe schon einmal eine XML Datei ausgelesen und da hatte das funktioniert. Auch konnte er ja vorher die XML datei lesen da er sonst nicht erkannt hätte das die Syntax nicht korrekt war...

Wo ist also mein Fehler? Was brauch ich statt event.target.data damit ich auf die kindknoten zugreifen kann?

Freue mich über jede Hilfe...
Viele Grüße
Sythus ist offline   Mit Zitat antworten
Alt 23-12-2008, 10:17   #2 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Ort: Vorm PC
Beiträge: 1.583
Zitat:
result="getNews(event)"
Dieser Callback hat 2 Parameter, du hast nur einen geschrieben.
Gnut ist offline   Mit Zitat antworten
Alt 23-12-2008, 10:27   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 39
Soweit ich weiß steht dein xml in "event.result" nicht in "event.target.data"
Mr. Sanders ist offline   Mit Zitat antworten
Alt 23-12-2008, 11:16   #4 (permalink)
Neuer User
 
Registriert seit: Dec 2008
Beiträge: 114
Danke für eure Antworten.

Gnut ich weiß nicht wie du das meinst, getNews hat doch nur einen Parameter und das ist ein Resultevent, oder? Wo siehst du einen zweiten?

Mr.Sanders, habe das nun mit event.result versucht, allerdings meckert er da direkt da result nur ein objekt ist. Auch toString() oder toLocaleString() brachte keinen Erfolg.
Habe es dann noch mit event.result.data probiert - da sagt er mir allerdings

Code:
TypeError: Error #2007: Parameter source darf nicht 'null' sein.
	at XMLParser/startParse()
	at flash.xml::XMLDocument/parseXML()
	at XP_newsWnd/getNews()[C:\Users\Sythus\Documents\Flex Builder 3\XpirewavePublisher\src\XP_newsWnd.as:19]
	at fs.comp.subcomp::xp_newsWnd/__getNewsHTTPService_result()[C:\Users\Sythus\Documents\Flex Builder 3\XpirewavePublisher\src\fs\comp\subcomp\xp_newsWnd.mxml:35]
	at flash.events::EventDispatcher/dispatchEventFunction()
	at flash.events::EventDispatcher/dispatchEvent()
	at mx.rpc.http.mxml::HTTPService/http://www.adobe.com/2006/flex/mx/internal::dispatchRpcEvent()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\http\mxml\HTTPService.as:290]
	at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::resultHandler()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:193]
	at mx.rpc::Responder/result()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\Responder.as:43]
	at mx.rpc::AsyncRequest/acknowledge()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:74]
	at DirectHTTPMessageResponder/completeHandler()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\messaging\channels\DirectHTTPChannel.as:403]
	at flash.events::EventDispatcher/dispatchEventFunction()
	at flash.events::EventDispatcher/dispatchEvent()
	at flash.net::URLLoader/onComplete()
Ich find leider auch keinen Beispielcode im Netz wo das schonmal genauso gemacht wurde...
Hoffe jemand kann mir helfen.

Ansonsten erstmal schöne Festtage euch allen
Sythus ist offline   Mit Zitat antworten
Alt 23-12-2008, 11:24   #5 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Ort: Vorm PC
Beiträge: 1.583
EDIT: Sorry, mein Code hat 2 Parameter, deswegen war ich verwirrt.

Geändert von Gnut (23-12-2008 um 11:31 Uhr)
Gnut ist offline   Mit Zitat antworten
Alt 23-12-2008, 11:34   #6 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 39
Hallo Sythus,

gugst Du mal hier :

http://blog.flexexamples.com/2007/09...vice-mxml-tag/

Ebenso schöne Feiertage :-)
Mr. Sanders ist offline   Mit Zitat antworten
Alt 23-12-2008, 11:37   #7 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Ort: Vorm PC
Beiträge: 1.583
Code:
			public function getNews(event:Event):void{
				var httpserviceTmp:HTTPService;
				httpserviceTmp = HTTPService(event.currentTarget);
				//Daten liegen als XML in lastResult
				trace(httpserviceTmp.lastResult.toString());
			}
Gnut ist offline   Mit Zitat antworten
Alt 23-12-2008, 12:23   #8 (permalink)
Neuer User
 
Registriert seit: Dec 2008
Beiträge: 114
Super, danke euch 2!!!
Eure Beiträge haben mir sehr geholfen.

Bis bald

Sythus
Sythus ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 04:31 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele