26. Juli 201114 j Hallo, ich bin noch Anfänger und hoffe deshalb sehr auf eure Unterstützung. Ich habe folgende Situation: 1) es gibt einen Server (so eine Art großes Telefonbuch mit einer EIngabezeile) auf dem man über verschiedene Parameter eine Person suchen kann. (z.b Name oder Nummer...) Ich soll einen Client bauen mit dem man diesen Server abfragen kann. 2) Ergebnis ist eine XML-Ausgabe, die man mit XML-Schema parsen muss. Mein Code bis jetzt: <?php header('Content-type: text/xml'); $request = "https://https://telefonbuch.de/telefonbuch/gumb/xml/such?username=Nutzer&password=123456&Suchparameter=Begriff"; $request .= $_SERVER[argv][1] . "=" . $_SERVER[argv][2]; $fp = fsockopen('https://telefonbuch.de', 443); fputs($fp, $request); while(!feof($fp)) { $res .= fgets($fp, 512); } fclose($fp); echo $res; $str = explode("\r\n", $res); $echo = false; $myStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; foreach($str as $entry){ if($entry == '<?xml version="1.0" encoding="UTF-8"?>') { // start printing $echo = true; $myStr .= '<response success="true">'; } else { if($echo){ $myStr .= trim($entry); } } } if($_SERVER['argv'][1] == 'nummer'){ $tmpoutput = explode("<name>", $myStr); $output = explode("</name>", $tmpoutput[1]); } else if($_SERVER['argv'][1] == 'name'){ $tmpoutput = explode("<nummer>", $myStr); $output = explode("</nummer>", $tmpoutput[1]); } geht das vllt anders? oder einfacher?
26. Juli 201114 j Hallo dela, Den Request würde Ich (falls möglich) über cURL machen. PHP-Manual - cURL Das XML-File kannst du ganz gut über die Klasse DOMDocument verarbeiten. PHP-Manual - DOMDocument Les dich am besten mal ein bisschen in die beiden Sachen ein. Ich hoffe Ich konnte helfen. Mit freundlichen Grüßen Shogoki
29. Juli 201114 j hi, danke für die schnelle antwort, aber könntest du es vllt. etwas näher erläutern, das mit dem parsen. brauch ich dann 3 dateien: test.xml (XML datei ) , test.xsd ( XML schema) und test.php ( ? ) ? was muss in der test.php stehen? bes jetzt sieht sie so aus: $dom = new DOMDocument (); $dom->load ('test.xml); if ($dom->schemaValidate ('test.xsd')) { echo test.xml.' is valid.'."\n"; } else { echo $file.' is NOT valid.'."\n"; } und das krieg ich zurück : Class 'DOMDocument' not found in...
29. Juli 201114 j Auf was für einem System und wie hast du PHP installiert? Normalerweise kann man die Erweiterungen via php.ini (de-)aktvieren. Findest du in der Ausgab php_info() einen XML-Abschnitt?
29. Juli 201114 j ja , den gibts da. XML Support active XML Namespace Support active libxml2 Version 2.7.6
1. August 201114 j Geht die Frage vielleicht auch etwas konkreter? Hast du das andere Problem beheben können?
1. August 201114 j jap, bekomme jetzt eine antwort ( xml ) muss diese i-wie parsen und in db speichern. hab aber davon nicht wirklich ahnung, weiß halt dass man dann ein array bekommt den man verarbeiten kann. mfg. dela
1. August 201114 j Willst du die Daten aus einem Baum auslesen (DOM), nach Werten suchen (XPath) oder auf bestimmte Elemente reagieren (SAX)? Kannst du deinen Anwendungsfall ausführliche formulieren und ggf. beispielhaftes XML posten und sagen, welche Daten du willst?
1. August 201114 j so in etwas sieht die antwort aus: <?xml version="1.0" encoding="UTF-8"?> <result-set start="0"length="100"> <employee name="Test" additional-name="" title="" initials="472874257" id <working-relationship line-manager-id="12346789" firma="KKK" telephone="012548795" email="test@test.de" employee-type=""> <line-manager lastname="" firstname="" id=""> </line-manager> </working-relationship> </employee> </result-set>
1. August 201114 j das was in den "" steht. ( steht normalerweise überall etwas ) zB. wird es eine spalte "name" geben mit dem wert "test" und soweit ich weiß muss man die xml datei parsen um mit dem wert test arbeiten zu können oder etwas nicht?
1. August 201114 j Spalte ist mir nicht bekanntes Konzept in XML-Dateien. In Anführungsstrichen stehen Attributwerte. Du kannst dir einen XPath Ausdruck bauen (in etwa "//@*"), der dir alle Attribute in der Datei liefert, oder für bestimmte Elemente. Du kannst dir einen DOM-Baum zu deinem XML erzeugen und dir die Attribute zu jedem Element ausgeben lassen. Damit kannst du dann die Daten, die im XML enthalten sind in deinem Geschäftslogik-Objekte übertragen.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.