XML DOM-Klassen - u. Methoden

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

  • XML DOM-Klassen - u. Methoden

    Hallo zusammen,

    Ich habe Probleme mit dem Verständnis der DOM-Funktionalitäten. Folgendes XML-File soll als Beispiel dienen:

    PHP-Code:
    <?xml version="1.0"?>
    <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
        <meta name="author" content="John O'Reilly"/>
        <form id="hello">
          <block>
            <prompt>first prompt</prompt>
            <prompt>second prompt</prompt>
          </block>
        </form>
    </vxml>
    Mit folgendem PHP-Code lasse ich mir die einzelnen Nodes und deren Kinder ausgeben:

    PHP-Code:
    $doc = new DOMDocument();
    $doc->load("index.vxml");
    $NodeList = new DOMNodeList();
    $NodeList $doc->getElementsByTagName('*');

    for (
    $i 0$i $NodeList->length$i++)
    {
      
    $Node = new DOMNode();
      
    $Node $NodeList->item($i);
      echo 
    "Node: ".$Node->nodeName." KindNode: ".$Node->firstChild->nodeName;
      echo 
    "<br>";

    Wenn man sich das XML anschaut, dann ist doch das BLOCK-Element das erste Kind des FORM-Elements, warum wird aber "#text" ausgegeben?

    Genauso bei der Eigenschaft "DOMNode->nextSibling", da erwarte ich gemäß der Dokumentation beim ersten PROMPT-Element, dass mir das zweite Prompt-Element angegeben wird, weil es ja die folgende Node ist, jedoch wird auch hier "#text" ausgegeben.
    Wer weiß Rat?

    MfG, Loocie

  • #2
    also ich sehe zwischen <form> und <block> noch einen textknoten mit dem inhalt
    Code:
    \n######
    , wobei ich mit "#" ein leerzeichen meine und es somit sichtbar machen möchte. dom sieht ihn natürlich auch.

    im groben geht es um die "empty text nodes", schau hier: http://www.webreference.com/programm...pk3/index.html

    Kommentar

    Lädt...
    X