DOMDocument

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

  • DOMDocument

    Hallo Leute,

    Habe folgendes Problem mit der DOMDocument:

    Code:
    <structurefield name="fb_block_companyname" type="block">
        <value name="gsid">029384</value>
        <value name="label">Betriebsname</value>
        <value name="default_value"></value>
        <value name="sort">3000</value>
        <value name="infotext"></value>
        <option name="data">block</option>
        <option name="input">block</option>
        <array name="block_contains_field">
            <value name="0">fb_companyname1</value>
        </array>
    </structurefield>
    PHP-Code:
    $dom = new DOMDocument();
    $dom->load('test.xml');

    $params $dom->getElementsByTagName('structurefield');

    echo 
    $params->item(1)->childNodes->length
    Es gibt mir leider "17" aus??!! Warum?
    Und ich kann auch nicht auf die einzelnen childnodes zugreifen?

    es funktioniert nur mit childNodes->item(1)->nodeValue, da gibt er mir dann die gsid aus, aber bei childNodes->item(2...)->nodeValue gibt er mir nichts aus!

    warum nicht?

    danke im voraus.

  • #2
    Whitespace zwischen Elementen == Textknoten.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Hallo,

      du vergisst vermutlich, dass zwischen zwei Elementknoten meistens noch ein Textknoten mit dem Leerraum zwischen diesen Elementen kommt. Wenn du children statt childNodes nimmst, werden nur Kindelemente zurückgegeben statt alle Knoten (inkl. Nicht-Elementknoten), vielleicht hilft dir das weiter. Ansonsten immer mit einer Schleife durchgehen und von jedem Knoten erstmal den Typ (nodeType) prüfen.

      Gruß,

      Amica
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #4
        danke euch, habs jetzt verstanden.

        aber was meinst du mit children anstatt childNodes?

        gibt es das attribut children überhaupt?

        Kommentar


        • #5
          Zitat von rundmc Beitrag anzeigen
          gibt es das attribut children überhaupt?
          Sorry, hast Recht. Das gibt es nur im JavaScript DOM, nicht bei PHP. Also doch Schleifen.
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Setz vorm Parsen des Dokuments mal die preserveWhiteSpace-Property auf false, dann werden weiße Textknoten ignoriert.

            Kommentar

            Lädt...
            X