Ankündigung

Einklappen
Keine Ankündigung bisher.

XML: Zugriff auf Elternknoten

Einklappen

Neue Werbung 2019

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

  • Bunnydog
    hat ein Thema erstellt XML: Zugriff auf Elternknoten.

    XML: Zugriff auf Elternknoten

    Ich habe eine Frage bezüglich XML.

    Wie kann ich anhand eines Knotens auf dessen Elternknoten zugreifen?

    Das XML File lese ich ein mit
    $xml = simplexml_load_file($filename);

  • Gast-Avatar
    Ein Gast antwortete
    Seltsam, hier braucht es das c/
    nur mit .. erfolgt eine leere Ausgabe.

    (ja, das mit dem Feld war mir klar; deshlab auch das var_dump() im Beispiel )

    Einen Kommentar schreiben:


  • Bunnydog
    antwortet
    Danke nochmals Bruchpilot, nun klappt es.
    Habe ein wenig über xpath nachgeforscht und erfahren, dass dies immer ein Array zurückliefert. Daher muss es

    PHP-Code:
    echo $child[0]['name']; 
    heissen. Deine alte Zeile mit dem xpath

    $parent = $child->xpath('..');

    war aber durchaus korrekt, da braucht es kein 'c/' dazu.

    Thank you.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    PHP-Code:
    <?php
    $string 
    = <<<XML
    <a>
     <b name="bbb">
      <c name="ccc">text</c>
     [/b]
    </a>
    XML;
    $xml simplexml_load_string($string);

    $child $xml->b->c;
    $child $child->xpath('c/..');
    echo 
    $child[0]['name'];
    ?>
    "Wieso" entzieht sich aber gerade auch komplett meinem Verständnis...

    Einen Kommentar schreiben:


  • Bunnydog
    antwortet
    Danke für die Antwort, Bruchpilot. Ich verstehe jedoch nicht, warum folgender code nicht "bbb" ausgibt. Was mach ich falsch?

    PHP-Code:
    <?php
    $string 
    = <<<XML
    <a>
     <b name="bbb">
      <c name="ccc">text</c>
     [/b]
    </a>
    XML;
    $xml simplexml_load_string($string);

    $child $xml->b->c;
    $parent $child->xpath('..');
    echo 
    $parent[name];

    ?>

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Mit XPath.
    PHP-Code:
    <?php
    $string 
    = <<<XML
    <a>
     [b]
      <c>text</c>
      <c>stuff</c>
     [/b]
     <d>
      <c>code</c>
     </d>
    </a>
    XML;
    $xml simplexml_load_string($string);


    $child $xml->b->c;
    $parent $child->xpath('..');
    var_dump($parent);
    ?>

    Einen Kommentar schreiben:

Lädt...
X