Unter dem Document Object Model (DOM) Ansatz zur XML-Dokumenten

Die Dichotomie zwischen linearen Denken und ganzheitlichem Denken trennt (jeweils) SAX von DOM.

SAX (Simple API for XML) behandelt ein XML-Dokument linear, für Stück durch ein Dokument Stück Arbeit, von Anfang bis Ende. Aber mit DOM (Document Object Model), springen Sie in und Blick auf das gesamte Dokument. Ein wenig später, zoomen Sie auf das Root-Element in, und dann näher auf ein Element innerhalb des Wurzelelement konzentrieren. In einigen Situationen im Springen ist genau das, was Sie tun müssen.

DOM-Knoten

Mit DOM, halten Sie von einem XML-Dokument als mehrere mit Knoten. Beispiele von Knoten umfassen Elemente, Attribute, Kommentare, und die Zeichen zwischen einem Paar von Start- und End-Tags. Ein vollständiges XML-Dokument ist selbst ein Knoten. Alles in allem kann ein XML-Dokument 12 verschiedene Typen von Knoten aufweisen.

Die Knoten eines Baums

Zusammengenommen alle DOM-Knoten in einem XML-Dokument einen Baum bilden. Nehmen wir zum Beispiel das Dokument in Listing 1. Dieser Baum sieht DOM Dokument wie der Baum in Abbildung 1 dargestellt.

Listing 1: Die Sardelle-Liebhaber-Verein

lt;? xml version = "1.0" encoding = "UTF-8">




Gründer, Präsident, Sekretär, Werbeleiter


Der Baum hat elf Knoten. Um sie zählen, beginnen Sie des Baumes Äste Zählung (bequem angezeigt in Abbildung 1). dann zählen die Mitglied Vorname = "Herbert" Zweig ein zweites Mal. (Dieser Zweig hat zwei DOM-Knoten auf sie. Das Element mit dem Namen Mitglied ein Knoten ist, und das Attribut des Elements Vorname = "Herbert" ist ein Knoten.)


Abbildung 1: Ein Baum darstellt, das Dokument in Listing 1.

Eine Abhandlung über Bäume

Es gibt ein paar Dinge, die Sie 1 durch starrte auf den Baum in Abbildung entdecken werden.

  • Einige Knoten sind Kinder von anderen Knoten.
  • Beispielsweise ist der Knoten ein Mitglied Kind des AnchovyLoversClub Knotens. Das ist, weil, in Listing 1, das Mitglied Element innerhalb des AncoverLoversClub Element verschachtelt ist. In ähnlicher Weise ist der Ständige Knoten ein Kind des Mitglied Knoten. Diese Familie Analogie geht weiter und weiter. Die Mitgliedknoten ist der Elternteil des Ständigen Knoten und der AncoverLoversClub ist die Mutter der Mitglied Knoten.
  • Das gesamte Dokument ist ein Knoten.
  • Dies ist ein wichtiger Punkt, und es ist leicht zu vergessen. In Listing 1, das Stammelement des Dokuments ist AnchovyLoversClub. Aber in 1, ist der Name AnchovyLoversClub nicht an der Spitze des Baumes. Stattdessen ist das Wort #document an der Spitze des Baumes.
    Ein obersten Knoten des DOM-Baum stellt ein vollständiges XML-Dokument. Fehler treten auf, wenn Programmierer denken, dass das Stammelement des Dokuments den Baum beginnt. (Es ist nicht.)
  • Kommentare und Textstücke sind Knoten.
  • In Abbildung 1 ist der Kommentar ein Kindknoten des Dokumentknoten. Das ist, weil, in Listing 1, der Kommentar Teil des Dokuments ist. Der Kommentar ist im Inneren jeder der Dokumentelemente nicht verschachtelt. Noch einmal, wir spielen Genealogie. Wir sagen, dass die #document Knoten hat zwei Kinder - einen Kommentarknoten und einen AnchovyLoversClub Knoten. Diese beiden Knoten - der Kommentar und die AnchovyLoversClub - sind aufgerufen, Geschwister. Auch in Abbildung 1, der Text Gründer, Präsident, Sekretär, Werbe Manager ist Teil eines Knotens. In Listing 1, der Text Gründer, Präsident, Sekretär, ist Publicity-Manager innerhalb des Ständigen Element. Also, in Abbildung 1 ist dieser Textknoten ist ein Kind des Ständigen Knoten.
  • Selbst ignorable Text ist Teil eines Knotens.
  • Gemäß 1 hat der AnchovyLoversClub Knoten drei direkt untergeordneten Knoten - zwei Knoten markiert #text, und einen anderen Knoten markiert Mitglied. Das ist, weil so weit wie DOM betrifft, die AnchovyLoversClub Knoten drei Dinge in ihm hat.

Wagenrücklauf und drei Zuschnitte

Mitglied Element

Wagenrücklauf

    Die Situation ist in Figur 2 veranschaulicht.

Figur 2: Zwei Textknoten in Listing 1.
    Die drei Kinder der Mitglied Knoten - zwei Stücke von Leerzeichen und ein Standing Element - sind alle Geschwister. Nun die Punkte feststellen und die [cr] in den Abbildungen 1 und 2. In der Baumdiagramm stellt ein Punkt ein Leerzeichen und [cr] steht für einen Zeilenumbruch. Mit DOM, all das nicht relevante Leerzeichen zwischen dem AnchovyLoversClub Start-Tag und den Mitglied Start-Tag einen Knoten bildet. Beginnend mit dem Winkel, der die AnchovyLoversClub Start-Tag beendet wird, gehen Sie in die nächste Zeile, und dann haben Sie drei Leerzeichen vor dem Winkel, die die Mitglied Tag beginnen wird geöffnet. All das Zeug ist ein DOM-Knoten.
  • End-Tags sind nicht Knoten.
  • Mit SAX, können denken Sie in Bezug auf die Inbetriebnahme des Elements Mitglied und später das Element Mitglied endet. In DOM, denken Sie nicht auf diese Weise. Stattdessen besuchen Sie das Mitglied Element nur einmal. Im Rahmen dieses Besuchs, besuchen Sie das Standelement und einen Text. DOM hat keine Methode, um die Methode SAX endelement entspricht.

Menü