XML DOM - Navigationsknoten
Knoten können durch Verwendung der Beziehung zwischen den Knoten navigieren.
Navigation DOM-Knoten
Die Beziehung zwischen dem Zugangsknoten von Knoten Knoten im Baum, gemeinhin als Navigationsknoten ( "Navigation Knoten").
In der XML DOM wird die Beziehung zwischen den Knoten als Eigenschaft des Knotens definiert:
- parentNode
- childnodes
- first
- lastchild
- nextSibling
- previousSibling
Die folgende Abbildung zeigt books.xml einem Teil der Knoten des Baums, und veranschaulicht die Beziehung zwischen den Knoten:
DOM - Eltern
Alle Knoten haben nur einen Elternteil. Der folgende Code zum <Buch> zu navigieren ist der übergeordnete Knoten:
Beispiele
x=xmlDoc.getElementsByTagName("book")[0];
document.write(x.parentNode.nodeName);
Versuchen »
Beispiele erläutern:
- Verwenden Sie loadXMLDoc () , um " die Books.XML " in xmlDoc
- Holen Sie sich das erste Element <book>
- Name des Ausgangsknotens "x" Elternknoten
Vermeiden Sie leere Textknoten
Firefox und andere Browser, leer, leer oder Newline als Textknoten, während der Internet Explorer nicht.
Es werden die folgenden Attribute verwenden: first, lastchild, nextSibling, previousSibling, wenn ein Problem auftritt.
Um zu vermeiden, zu einem leeren Textknoten (Elementknoten zwischen den Räumen und Zeilenumbrüche) navigieren, verwenden wir eine Funktion, die den Knotentyp überprüft:
{
y=n.nextSibling;
while (y.nodeType!=1)
{
y=y.nextSibling;
}
return y;
}
Die obige Funktion können Sieget_nextSibling(Knoten) anstelle desKnotens .nextSiblingEigenschaft zu verwenden.
Code Erläuterung:
Typ 1 ist ein Elementknoten. Wenn der Geschwisterknoten kein Elementknoten ist, bewegt er sich zu dem nächsten Knoten, bis die Elementknoten so weit finden. Auf diese Weise, im Internet Explorer und Firefox, können Sie die gleichen Ergebnisse erhalten.
Als das erste Kind
Der folgende Code zeigt die erste Seite <Buch> ist das erste Element:
Beispiele
<head>
<script src="loadxmldoc.js">
</script>
<script>
//check if the first node is an element node
function get_firstChild(n)
{
y=n.firstChild;
while (y.nodeType!=1)
{
y=y.nextSibling;
}
return y;
}
</script>
</head>
<body>
<script>
xmlDoc=loadXMLDoc("books.xml");
x=get_firstChild(xmlDoc.getElementsByTagName("book")[0]);
document.write(x.nodeName);
</script>
</body>
</html>
Ausgang:
Versuchen »
Beispiele erläutern:
- Verwenden Sie loadXMLDoc () , um " die Books.XML " in xmlDoc
- Verwenden Sie get_firstChild Funktion auf die Elemente in der ersten <Buch>, das erste Kind Knoten zu bekommen (ein Element zu dem Knoten gehören)
- Der Ausgang des ersten untergeordneten Knoten (Element gehörenden Knoten) Knotennamen
Weitere Beispiele
lastchild ()
In diesem Beispiel wird lastchild () -Methode und eine benutzerdefinierte Funktion das letzte Kind-Knoten zu erhalten
nextSibling ()
In diesem Beispiel wird nextSibling () -Methode und den nächsten Geschwisterknoten einer benutzerdefinierten Funktion, um den Knoten zu erhalten
previousSibling ()
In diesem Beispiel wird previousSibling () -Methode und eine benutzerdefinierte Funktion einen Geschwisterknoten Knoten zu erhalten