dela Geschrieben 26. Juli 2011 Geschrieben 26. Juli 2011 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?
Shogoki Geschrieben 26. Juli 2011 Geschrieben 26. Juli 2011 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
dela Geschrieben 29. Juli 2011 Autor Geschrieben 29. Juli 2011 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...
etreu Geschrieben 29. Juli 2011 Geschrieben 29. Juli 2011 XML Unterstüzung für PHP installiert/aktiviert/ mit kompiliert?
dela Geschrieben 29. Juli 2011 Autor Geschrieben 29. Juli 2011 hmm, was meinst du denn? habe PHP Version 5.3.1 was soll man da aktivieren?
etreu Geschrieben 29. Juli 2011 Geschrieben 29. Juli 2011 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?
dela Geschrieben 29. Juli 2011 Autor Geschrieben 29. Juli 2011 ja , den gibts da. XML Support active XML Namespace Support active libxml2 Version 2.7.6
dela Geschrieben 1. August 2011 Autor Geschrieben 1. August 2011 Guten morgen, kennt sich jemand mit xml-parser aus?
etreu Geschrieben 1. August 2011 Geschrieben 1. August 2011 Geht die Frage vielleicht auch etwas konkreter? Hast du das andere Problem beheben können?
dela Geschrieben 1. August 2011 Autor Geschrieben 1. August 2011 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
etreu Geschrieben 1. August 2011 Geschrieben 1. August 2011 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?
dela Geschrieben 1. August 2011 Autor Geschrieben 1. August 2011 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>
etreu Geschrieben 1. August 2011 Geschrieben 1. August 2011 Und was daraus willst du weiterverarbeiten?
dela Geschrieben 1. August 2011 Autor Geschrieben 1. August 2011 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?
etreu Geschrieben 1. August 2011 Geschrieben 1. August 2011 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.
dela Geschrieben 1. August 2011 Autor Geschrieben 1. August 2011 spalte war auch auf einen datenbankeintrag bezogen, vielen dank für alles.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden