hallo an alle, habe ein riiiiiiiiiiiiiiiiiiiiiiiiiiiiiiieessiges problem und komme einfach nicht mehr weiter....für php gurus müsste das kein problem sein.
1. ich parse ein xml dokument mit expat und gebe es aus -> klappt
2. ich möchte an die einzelnen elemente der xml datei -> riessiges problem
3 danach möcht ich diese an eine tabelle in mysql senden -> wäre nicht das problem
hier mal die xml datei:
für mich ist nur das erste kindknoten relevant. egal wieviel <learningObject> tags es gibt!
während des parsens schreibt er mir den aktuellen name in ein array
und gebe es folgendermassen aus
Für mich ist aber wichtig wie ich an die inhalte der beiden tags <title> und <comments> komme hier hackt es total bei mir....pack ich foreach rein, gibt er mir einen invalid bla bla for foreach aus... kann mir jemand bitte helfen ich verzweifel langsam....
ps. bitte keine vorschläge auf simplexml umzusteigen kann es aus kompatibilitätsgründen nicht einsetzen!
danke im voraus bye bye crunny.
1. ich parse ein xml dokument mit expat und gebe es aus -> klappt
2. ich möchte an die einzelnen elemente der xml datei -> riessiges problem
3 danach möcht ich diese an eine tabelle in mysql senden -> wäre nicht das problem
hier mal die xml datei:
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<E_Lesson>
<Lesson_Unit>
<learningObject id="2" seqNumber="0">
<title>test Lesson 2</title>
<comments>no comments</comments>
</learningObject>
<learningObject id="32" seqNumber="0">
<title>test Lesson 32</title>
<comments>scheiss comments</comments>
</learningObject>
</Lesson_Unit>
</E_Lesson>
für mich ist nur das erste kindknoten relevant. egal wieviel <learningObject> tags es gibt!
während des parsens schreibt er mir den aktuellen name in ein array
PHP:
$file = "output_1.xml";
$result = array();
$currRow = 0;
function startElement($parser, $name, $attrs)
{
global $currTag, $currRow;
$currTag = $name;
}
function endElement($parser, $name) {
global $currRow;
/* NOTIZ: EXPAT liefert Ergebnisse in Grossbuchstaben...hier könnte man den Abgleich
mit der Funktion strtolower() in kleinbuchstaben umwandeln */
if ($name == "LEARNINGOBJECT")
$currRow++;
}
function characterData($parser, $tagData) {
global $result, $currRow, $currTag;
$tagData = trim($tagData);
if ($tagData != '')
$result[$currRow][$currTag] = $tagData;
}
PHP:
xml_parser_free($xml_parser);
echo "<xmp>";
print_r($result[0]);
echo "</xmp>";
ps. bitte keine vorschläge auf simplexml umzusteigen kann es aus kompatibilitätsgründen nicht einsetzen!
danke im voraus bye bye crunny.