Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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?

Geschrieben

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...

Geschrieben

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?

Geschrieben

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

Geschrieben

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?

Geschrieben

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>

Geschrieben

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?

Geschrieben

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.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...