Eigenschaften verschiedener Objekte gleichzeit ausgeben

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

  • Eigenschaften verschiedener Objekte gleichzeit ausgeben

    Hallo,

    ich erhalte zum Beispiele durch ein API Aufruf ein XML response und ziehe mir über DOM daraus Objekte:

    PHP-Code:

    $name 
    $responseDoc->getElementsByTagName('Name'); 
    $street $responseDoc->getElementsByTagName('Street'); 
    Jetzt möchte ich das ganze so ausgeben:
    PHP-Code:
    Name 
    Strasse

    Name
    Strasse
    .... 
    Aber wie mache ich das? Für ein Objekt funktioniert es so:
    PHP-Code:
    foreach($name as $elem
    {  
    echo 
    $elem->nodeValue

    Aber wie kann ich gleichzeitig Elemente von verschiedenen Objekten ausgeben?

  • #2
    Meinst du sowas?
    PHP-Code:
    for ($i 0$i max(count($name), count($street)); $i++) {
        if (isset(
    $name[$i])) echo $name[$i]->nodeValue;
        if (isset(
    $street[$i])) echo $street[$i]->nodeValue;

    Kommentar


    • #3
      Ja danke, nach diesem Prinzip soll es funktionieren. Nur kommt die Fehlermeldung "Cannot use object of type DOMNodeList as array ".
      Ich habe auch schon mit count probiert, aber es wird immer 1 ausgegeben, obwohl wie bei meinem Beispiel mehrere Namen ausgegeben werden.

      Kommentar


      • #4
        Original geschrieben von simond
        Nur kommt die Fehlermeldung "Cannot use object of type DOMNodeList as array ".
        Ich habe auch schon mit count probiert, aber es wird immer 1 ausgegeben, obwohl wie bei meinem Beispiel mehrere Namen ausgegeben werden.
        Naja, es sollte dann eher so aussehen: $name->item($i)->nodeValue;
        Und anstelle von count: $name->length

        Kommentar


        • #5
          Vielen Dank! So klappt es wie ich wollte.

          Kommentar


          • #6
            Jetzt gibt es ein neues Problem. Es kann sein, dass zu einem Namen z.B. keine Straße existiert, also das Element gibt es zu einem Datensatz nicht. Wenn ich es dann so mache wie es oben gelöst wurde stimmt dann aber die Zuordnung nicht mehr.
            D.h. wenn z.B. bei dem ersten Datensatz das Straßen Element fehlt dann wird die Straße vom zweiten Element ausgegeben, es soll aber nur da ausgegeben werden wozu es gehört.

            Kommentar


            • #7
              Wenn das so ist, dass nicht jeder Name eine Strasse hat, kannst du nicht mit getElementsByTagName('Name') und getElementsByTagName('Street') arbeiten - die Ergebnisse haben keinen Bezug zueinander. Du kannst nicht feststellen, ob ein Element im Street-Set zu einem Element im Name-Set gehört oder nicht.

              Versuchs mal mit getElementsByTagName(<PARENT-VON-NAME-UND-STREET>).

              Kommentar

              Lädt...
              X