Ankündigung

Einklappen
Keine Ankündigung bisher.

xml parsen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • xml parsen

    hallo,

    ich habe eine xml-Struktur...ungefähr so:

    <export date="2006-05-15 14:23:09">
    <missings numeric="-77" text="-66" text_empty="-99" timestamp="0" datetime="0000-00-00 00:00:00"/>
    -
    <variables>
    -
    <variable name="lfdn" type="integer">
    <label>number</label>
    </variable>

    -
    <codes>
    <code key="0">Kein Tester</code>
    <code key="1">Tester</code>
    </codes>
    </variable>
    -
    <variable name="offline" type="integer">
    <label>offline</label>
    </variable>
    -
    <variable name="v237" type="character">
    <label>Interviewer-Nr</label>
    </variable>
    -
    <variable name="v238" type="character">
    <label>Interview-Nr.</label>
    </variable>
    -
    <variable name="v243" type="character">
    <label>v_555</label>
    </variable>

    -
    <code key="4">
    Ja, ich bin umgezogen und habe den Arbeitsplatz gewechselt.
    </code>
    </codes>
    </variable>
    </export>

    mit folgendem skript gibt er mir nur die elemente aus. ich hätte aber gern die namen wie (v237 oder v242 usw.). Wie kann ich das Skript anpassen?

    <?php
    $file = "data.xml";
    $depth = array();

    function startElement($parser, $name, $attrs)
    {
    global $depth;
    for ($i = 0; $i < $depth[$parser]; $i++) {
    echo " ";
    }
    echo "$name\n";
    $depth[$parser]++;
    }

    function endElement($parser, $name)
    {
    global $depth;
    $depth[$parser]--;
    }

    $xml_parser = xml_parser_create();
    xml_set_element_handler($xml_parser, "startElement", "endElement");
    if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
    }

    while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
    die(sprintf("XML error: %s at line %d",
    xml_error_string(xml_get_error_code($xml_parser)),
    xml_get_current_line_number($xml_parser)));
    }
    }

    xml_parser_free($xml_parser);

    ?>


    danke + gruss!

    tom

  • #2
    benutz bitte [php] BBCode-Tags, das kann keiner lesen
    ([php] und [code] Tags mischen geht nicht)

    Kommentar


    • #3
      Wenn du PHP5 hast, solltest du dir http://de.php.net/simplexml mal ansehen.

      Kommentar

      Lädt...
      X