http://www.php.net/manual/de/ref.domxml.phpZitat von Moritz
Hallo!
ich habe leider noch keinerlei Erfahrungen was XML angeht, nur um schon einmal vorzuwarnen
Ich habe eine XML-Datei, die wie folgt aussieht:
Was ich nun aus dieser Datei brauche ist jeweils die Artikelnummer sowie Bestand ja/nein und, falls vorhanden, die Lieferwoche.Code:<?xml version="1.0"?> <bestaende> <bestaende> <artikel artnr="401017"> <bestand>nein</bestand> </artikel> <artikel artnr="401167"> <bestand>nein</bestand> </artikel> <artikel artnr="401171"> <bestand>nein</bestand> </artikel> <artikel artnr="401748"> <bestand>nein</bestand> </artikel> <artikel artnr="401791"> <bestand>nein</bestand> </artikel> <artikel artnr="402127"> <bestand>ja</bestand> </artikel> <artikel artnr="404398"> <bestand>nein</bestand> <lieferwoche>36</lieferwoche> </artikel> <artikel artnr="405023"> <bestand>ja</bestand> </artikel> <artikel artnr="405458"> <bestand>ja</bestand> </artikel> </bestaende> <messages> </messages> </bestaende>
Das Ganze würde ich dann Tabbstopp-getrennt ausgeben:
artikelnummer | Bestand | Lieferwoche
Leider habe ich keine Ahnung, wie ich die Daten aus der XML-Datei extrahieren soll. Zu DOM habe ich leider keine Doku gefunden.
Ich fände es echt toll, wenn Ihr mit einen kleinen Schubs in die richtighe Richtung geben könntet!
Vielen Dank!
...zur Zeit außer Betrieb...
http://www.php.net/manual/de/ref.domxml.phpZitat von Moritz
ne ganze reihe parser gibts auch noch unter http://php.net/xml_parse in den kommentaren. sehr schlicht, koennen leider nicht mit cdata/tag-gemischen umgehen, aber das brauchst du fuer deine struktur auch nicht.
in eile kam er,
in schwarzem gewand,
aus den tiefen des waldes,
ein einsamer mann, ein geschoepf der freiheit,
ein geschoepf ohne furcht,
doch alle nannten sie ihn nur T O D
Hallo!
vielen Dank für die Antwort!
Ich hab mal versucht die Referenz von DOM zu verstehen, leider bin ich jedoch kläglich gescheitert.
Könntet ihr mir evtl mal einen Anfang zeigen? Wäre echt super!
Vielen Dank und ein schönes Wochenende!
...zur Zeit außer Betrieb...
Dazu brauchst Du Dir nur die einzelnen Funktionen anschauen.
Beginn doch mit domxml_xmltree
Dort hast Du auch viele Code-Beispiele, die Dir helfen sollten (wichtiger Tipp: in den Kommentaren zu den Befehlen verbergen sich oft die besten Tipps)
TYPO3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
AHHHHH!!! Ich bekomms einfach nicht hin
Ich hab ihn über domxml_xmltree zwar soweit, dass ich über print_r das XML-File in nen Array gelesen bekomme, aber wie mache ich nun weiter....
Langsam stellt sich echt die Totalblockade ein - tut mir leid...
...zur Zeit außer Betrieb...
und wo liegt das problem bei den anderen xml-parsern?
in eile kam er,
in schwarzem gewand,
aus den tiefen des waldes,
ein einsamer mann, ein geschoepf der freiheit,
ein geschoepf ohne furcht,
doch alle nannten sie ihn nur T O D
Ich habe in meinem FAll den Parser von "bbellwfu at gmail dot com" auf dieser Seite http://www.php.net/xml_parse genommen.
Dieser produziert ein Array, dass wie folgt aussieht:
Nun weiß ich nicht, wie ich an die Daten komme, die [ARTNR] bzw in BESTAND stehen. Sorry, dass ich mich so dämlich anstelle, aber ich sitze jetzt schon seit einigen Tagen an dem Mist ohne dass sich ein Ergebnis einstellt und bin leicht gefrustet...PHP-Code:Array
(
[0] => Array
(
[name] => BESTAENDE
[attrs] => Array
(
)
[children] => Array
(
[0] => Array
(
[name] => BESTAENDE
[attrs] => Array
(
)
[children] => Array
(
[0] => Array
(
[name] => ARTIKEL
[attrs] => Array
(
[ARTNR] => 401017
)
[children] => Array
(
[0] => Array
(
[name] => BESTAND
[attrs] => Array
(
)
[tagData] => nein
)
)
)
[1] => Array
(
[name] => ARTIKEL
[attrs] => Array
(
[ARTNR] => 401167
)
[children] => Array
(
[0] => Array
(
[name] => BESTAND
[attrs] => Array
(
)
[tagData] => nein
)
)
)
[2] => Array
(
[name] => ARTIKEL
[attrs] => Array
(
[ARTNR] => 401171
)
[children] => Array
(
[0] => Array
(
[name] => BESTAND
[attrs] => Array
(
)
[tagData] => nein
)
)
)
[3] => Array
(
[name] => ARTIKEL
[attrs] => Array
(
[ARTNR] => 401748
)
[children] => Array
(
[0] => Array
(
[name] => BESTAND
[attrs] => Array
(
)
[tagData] => nein
)
)
)
[4] => Array
(
[name] => ARTIKEL
[attrs] => Array
(
[ARTNR] => 401791
)
[children] => Array
(
[0] => Array
(
[name] => BESTAND
[attrs] => Array
(
)
[tagData] => nein
)
)
)
[5] => Array
(
[name] => ARTIKEL
[attrs] => Array
(
[ARTNR] => 402127
)
[children] => Array
(
[0] => Array
(
[name] => BESTAND
[attrs] => Array
(
)
[tagData] => ja
)
)
)
[6] => Array
(
[name] => ARTIKEL
[attrs] => Array
(
[ARTNR] => 404398
)
[children] => Array
(
[0] => Array
(
[name] => BESTAND
[attrs] => Array
(
)
[tagData] => nein
)
[1] => Array
(
[name] => LIEFERWOCHE
[attrs] => Array
(
)
[tagData] => 36
)
)
)
[7] => Array
(
[name] => ARTIKEL
[attrs] => Array
(
[ARTNR] => 405023
)
[children] => Array
(
[0] => Array
(
[name] => BESTAND
[attrs] => Array
(
)
[tagData] => ja
)
)
)
[8] => Array
(
[name] => ARTIKEL
[attrs] => Array
(
[ARTNR] => 405458
)
[children] => Array
(
[0] => Array
(
[name] => BESTAND
[attrs] => Array
(
)
[tagData] => ja
)
)
)
)
)
[1] => Array
(
[name] => MESSAGES
[attrs] => Array
(
)
)
)
)
)
Vielen Dank für Eure grossartige Hilfe!
...zur Zeit außer Betrieb...
zB mit
so wie du halt auf jedes andere array auch zugreifst, du musst nur die keys verfolgen.PHP-Code:$array[0]['children'][0]['children'][0]['attrs']['ARTNR']
$array[0]['children'][0]['children'][0]['children'][0]['TagData']
in eile kam er,
in schwarzem gewand,
aus den tiefen des waldes,
ein einsamer mann, ein geschoepf der freiheit,
ein geschoepf ohne furcht,
doch alle nannten sie ihn nur T O D
Komisch, genau das habe ich vorhin probiert, was aber nicht geklappt hat...
Naja, werds glich mal testen und berichten - bin gerade noch einer anderen Lösung auf der Spur.
Vielen Dank aber erst mal soweit.
...zur Zeit außer Betrieb...
Hallo nocheinmal!
also ich bin nun schon etwas weiter.
Leider macht mir die Ausgabe von Bestand ja/nein bzw der Lieferwoche etwas Probleme.
Hier mal der Code:
$artnr wird problemlos ausgegeben, aber den Rest unterschlägt das Script. Ich habe mir gedacht, dass irgendwas mit "node_value();" nicht stimmen kann. Hab schon allesmögliche probiert, bekomme es aber nicht hin.PHP-Code:<?php
$doc = addslashes(domxml_open_file("result.dat"));
$artikelElements = $doc->get_elements_by_tagname('artikel');
foreach ($artikelElements as $artikelElement) {
$artnr = $artikelElement->get_attribute('artnr');
$bestandElements = $artikelElement->get_elements_by_tagname('bestand');
if ($bestandElements.length > 0) {
$bestandElement = $bestandElements[0];
$bestand = $bestandElement->node_value();
} else {
$bestand = '';
}
$lieferwocheElements
= $artikelElement->get_elements_by_tagname('lieferwoche');
if ($lieferwocheElements.length > 0) {
$lieferwocheElement = $lieferwocheElements[0];
$lieferwoche = $lieferwocheElement->node_value();
} else {
$lieferwoche = '';
}
print($artnr . ', ' . $bestand . ', ' . $lieferwoche . "\n<br>");
}
?>
Seht Ihr noch einen Fehler?
...zur Zeit außer Betrieb...
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)