XML mittels SOAP parsen?

Hier bekommst Du deutschsprachigen Support. Keine Fehlermeldungen oder Erweiterungswünsche bitte!
Post Reply
User avatar
santscho
Posts: 1442
Joined: Mon 2. Apr 2007, 08:56
Location: Schweiz

XML mittels SOAP parsen?

Post by santscho »

Ich stehe vor der Aufgabe, in einem phpwcms-Artikel eine externe XML zu parsen. Habe das noch nie gemacht und brauche eure Hilfe.

Hier die Anleitung, die ich bekommen habe (Google Translate). Kann aber nichts damit anfangen:
Ist möglich, die Daten für das aktuelle Kalenderraster und nächste Woche im XML-Format unter Verwendung von SOAP-Protokoll zu erhalten. Wenn der Server mit PHP, muss es eine einfache Seife-Client zu erstellen, wie folgt:

Code: Select all

$client = new SoapClient( "http://calendar.rop.ru/xmlserv.php?wsdl");
$calendar_xml = ($client-> GetTwoWeeksXmlCalendar ());
Teilweise werden die Daten $calendar_xml aktuelle und nächste Woche im XML-Format in UTF-8-Kodierung enthalten.
Eine Erklärung für die Struktur des gesendeten XML...

Тег <Day>
Optionen:
MonthRusOldStyleInRP - Monats, auf den Tag, im alten Stil in der russischen Transkription.
MonthEngOldStyle - Monats, auf den Tag, im alten Stil in gekürzten englischen Transkription.
MonthRusNewStyleInRP - Monat der Tag, der neue Stil in der russischen Transkription.
MonthEngNewStyle - Monats, auf den Tag, im alten Stil in gekürzten englischen Transkription.
IsRed - rote Flagge des Tages Kalender. Wenn 1 - ist ein roter Brief Tages, wenn 0, dann ist - nein.
IsPost - Flagge mageren Tage. Wenn 1 - ist ein schnelles Tages, wenn 0, dann ist - nein.
NumOldStyle - von alten Stil.
NumNewStyle - die Anzahl der neuen Stil.
MonthNumNewStyle - der Monat, in den neuen Stil.
YearNumNewStyle - Jahr neue Stil.
WeekDay - Tag der Woche (Montag, Dienstag, etc.).
Tag <Icons>
Optionen:
NameOrAltText - Name des Symbols.
URL - URL-Adresse Bild-Symbol.
Schon Konfuzius sagte: "Sei kein YAML-Lappen". YAML-phpwcms-Integration auf http://www.yaml.phpwcms.org
User avatar
Oliver Georgi
Site Admin
Posts: 9889
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: XML mittels SOAP parsen?

Post by Oliver Georgi »

Vie Spaß Ralph:

Code: Select all

<?php

function dumpvar($var) {
	echo '<pre>';
	print_r($var);
	echo '</pre>';
}

function object2array($object) {
	return @json_decode(@json_encode($object), 1);
}

$client = new SoapClient( "http://calendar.rop.ru/xmlserv.php?wsdl");
$result = $client->__soapCall('GetTwoWeeksXmlCalendar', array());

// Expect XML string here
if($result && is_string($result)) {
	
	$xml = simplexml_load_string($result);
	
	//dumpvar($xml);
	
	if($xml !== false) {
		
		$data = object2array($xml);
		
		if(is_array($data['Weeks']['Week']) && count($data['Weeks']['Week'])) {
			// Loop the XML result
			foreach($data['Weeks']['Week'] as $week) {
				
				//dumpvar($week);
				
				if(is_array($week['Day']) && count($week['Day'])) {
					
					foreach($week['Day'] as $day) {
					
						dumpVar($day);
						
					}	
				}	
			}
		}		
	}
}

?>
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
User avatar
santscho
Posts: 1442
Joined: Mon 2. Apr 2007, 08:56
Location: Schweiz

Re: XML mittels SOAP parsen?

Post by santscho »

http://www.ralphhaering.com/dev/hramusp/calendar.php

hmmm. irgend etwas stimmt da nicht. :D

Hier der Link zur Sample-XML von rop.ru: http://calendar.rop.ru/xml.xml
Schon Konfuzius sagte: "Sei kein YAML-Lappen". YAML-phpwcms-Integration auf http://www.yaml.phpwcms.org
User avatar
Oliver Georgi
Site Admin
Posts: 9889
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: XML mittels SOAP parsen?

Post by Oliver Georgi »

Was soll denn nicht stimmen, eine XML muss immer erst noch geparst werden. Das habe ich Dir geliefert. Jetzt musst Du aus diesen Daten das passende Anzeigeergebnis bauen. Der Einfachheit halber habe ich es Dir in ein leicht zu durchlaufendes Array gepackt. Wenn Du lieber mit dem Objekt arbeiten willst, viel Spaß.

Die SOAP ist keine fertige Schnittstelle!!! Für die Darstellungslogik bist Du verantwortlich.

Deine Beispiel-XML ist exakt, was ich nutze — über den SOAP Funktionsaufruf. Und wenn Du Dir mal die Parameter und Attribute in der XML ansiehst und mit meinen Array-Werten vergleichst = identisch!
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
Post Reply