Hallo,
folgendes Problem. Ich möchte Dateninhalt aus einer XML Datei auslesen. Dazu nutze ich einen XML Parser.
Wie kann ich zwei Elemente nacheinander ausgeben, zumal das Element "gco:Angle" häufiger vorkommt.
Wie man sieht handelt es sich dabei um Winkel. Ich versuche das das Element vor gco:Angle als Name ausgegeben wird und der Winkel dahinter.
Der Parser:
Ausgabe:
Die Ausgabe ist logisch, aber wie kann ich diese Reihenfolge beeinflussen, so dass das Elternelement "rotationAngleX" oder "rotationAngleY" mit einbezogen wird.
Gruß Maxe
PS: Der Parser ist stibitzt und angepasst. Davon gibs ja tausende im Netz.
folgendes Problem. Ich möchte Dateninhalt aus einer XML Datei auslesen. Dazu nutze ich einen XML Parser.
Code:
<SD_AngleAttitude> <rotationAngleX><gco:Angle uom="grad">2.5268</gco:Angle></rotationAngleX> <rotationAngleY><gco:Angle uom="grad">-0.7971</gco:Angle></rotationAngleY> <rotationAngleZ><gco:Angle uom="grad">181.9945</gco:Angle></rotationAngleZ> </SD_AngleAttitude>
Wie kann ich zwei Elemente nacheinander ausgeben, zumal das Element "gco:Angle" häufiger vorkommt.
Wie man sieht handelt es sich dabei um Winkel. Ich versuche das das Element vor gco:Angle als Name ausgegeben wird und der Winkel dahinter.
Der Parser:
PHP-Code:
<?php
function startElement($parser, $element_name, $element_attribute) {
global $ausgabe;
//Umwandeln in Kleinbuchstaben
$element_name = strtolower($element_name);
//Überprüfung des Elementnames
if ($element_name=="gco:angle") {
$ausgabe .= "<h3>RotationAngleX</h3><p>";
}
}
function endElement($parser, $element_name) {
global $ausgabe;
// in Kleinbuchstaben umwandeln
$element_name = strtolower($element_name);
// Überprüfung des Names eines Elementes
if ($element_name=="gco:angle") {
$ausgabe .= "</p>";
}
}
function cdata($parser, $element_inhalt) {
global $ausgabe;
// Der normale Text wird an $ausgabe angehängt
$ausgabe .= $element_inhalt;
}
$xmlFile = file("Test.xml");
$parser = xml_parser_create();
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "cdata");
foreach($xmlFile as $elem)
{
xml_parse($parser, $elem);
}
xml_parser_free($parser);
echo ($ausgabe);
?>
Code:
RotationAngleX 2.5268 RotationAngleX -0.7971 RotationAngleX 181.9945
Gruß Maxe
PS: Der Parser ist stibitzt und angepasst. Davon gibs ja tausende im Netz.
Kommentar