XML - parsen von Liste ohne Wertzuweisung

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

  • XML - parsen von Liste ohne Wertzuweisung

    Hallo zusammen

    Ich habe folgendes Problem beim Parsen von XML:

    Mit dem Script

    PHP-Code:
    function startElement($parser$name$attrs) {
    global 
    $i;
    global 
    $a_node;
    print_r($attrs);
    if(
    $attrs["X"] != null) {
    $a_node[$i]["X"] = $attrs["X"];                    
    }

    if(
    $attrs["NODEID"] != null) {
        
    $a_node[$i]["X"] = $attrs["X"];                    
    }

                    
    $i++;        
    }
                
    function 
    endElement($parser$name)    {}
                            
    //Parsen des XMLs:
    $i 0;
    $xml_parser xml_parser_create();
    @
    xml_set_element_handler($xml_parser"startElement""endElement");
    @
    xml_parse($xml_parser$trimedDatafeof($fp));
    @
    xml_parser_free($xml_parser); 
    Kann ich vom XML File

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    - <Response xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xml.ptv.de/eServer/eRouteServer/xml/eRoute.Routing.Response.v1.xsd" Type="eRoute.Routing" Version="1" Status="0">
    <Route Distance="250" Time="43" />
    - <RouteList ItemCount="5">
    <Item NodeID="101643950" />
    <Item NodeID="101643950" />
    <Item NodeID="101643933" />
    <Item NodeID="101643920" />
    <Item NodeID="101643920" />
    </RouteList>
    - <ListOfNodes ItemCount="10">
    <List>840423 5950707 840424 5950708 840430 5950701 840491 5950761 840574 5950773 840614 5950812 840656 5950827 840729 5950809 840728 5950807 840727 5950808</List>
    </ListOfNodes>
    </Response>

    den Teil

    - <RouteList ItemCount="5">
    <Item NodeID="101643950" />
    <Item NodeID="101643950" />
    <Item NodeID="101643933" />
    <Item NodeID="101643920" />
    <Item NodeID="101643920" />
    </RouteList>


    ohne Probleme parsen
    Habe aber noch keinen Weg gefunden, wie ich den Teil

    <ListOfNodes ItemCount="10">
    <List>840423 5950707 840424 5950708 840430 5950701 840491 5950761 840574 5950773 840614 5950812 840656 5950827 840729 5950809 840728 5950807 840727 5950808</List>
    </ListOfNodes>

    rauskriege. Da diese Liste nicht über die "herkömliche" Wertezuweisung funktionert wie die oberen Werte, die einem Array zugewiesen werden.

    Bin für jeden Tipp dankbar.

    Gruss
    Ronny

  • #2
    Du meinste du willst die Werte zwischen <list>...</list> bekommen?

    Das wäre dann:

    xml_set_character_data_handler($xml_parser, characterData);


    function characterData($parser, $data)
    {
    global $xml_catData;
    $xml_catData .= $data; // Taginhalt ergänzen (Splitting-Bug)
    }

    Gucke dir dazu mal das an: http://de3.php.net/manual/de/functio...dler.php#55527
    Damit hatte ich Probleme.
    Zuletzt geändert von razer2k; 04.11.2005, 20:34.

    Kommentar

    Lädt...
    X