Propiedad previousSibling del XML DOM

Definición y uso

La propiedad previousSibling devuelve el nodo hermano anterior del nodo seleccionado (el nodo anterior en el mismo nivel de árbol).

Si no existe tal nodo, esta propiedad devuelve null.

Sintaxis:

elementNode.previousSibling

Consejos y notas

Notas:Internet Explorer ignora los nodos de texto en blanco generados entre los nodos (como caracteres de nueva línea), mientras que Mozilla no lo hace. Por lo tanto, en el siguiente ejemplo, se utiliza una función para detectar el tipo de nodo del nodo hermano anterior.

El tipo de nodo del nodo de elemento es 1, por lo que si el nodo hermano anterior no es un nodo de elemento, se mueve al nodo anterior y se verifica si es un nodo de elemento. Este proceso se repite hasta encontrar el nodo hermano anterior. Este método asegura que se obtenga el resultado correcto tanto en Internet Explorer como en Mozilla.

Para obtener más información sobre las diferencias entre IE y Mozilla navegadores, visite el tutorial XML DOM en CodeW3C.com Navegador DOM esta sección.

ejemplo

En todos los ejemplos, utilizaremos el archivo XML books.xmly la función JavaScript loadXMLDoc().

El siguiente fragmento de código obtiene el nodo hermano anterior al primer elemento <author> del documento XML:

//verificar si el nodo hermano anterior es un nodo de elemento
function get_previoussibling(n)
{
var x=n.previousSibling;
while (x.nodeType!=1)
  {
  x=x.previousSibling;
  }
return x;
}
xmlDoc=loadXMLDoc("books.xml");
var x=xmlDoc.getElementsByTagName("author")[0];
document.write(x.nodeName);
document.write(" = ");
document.write(x.childNodes[0].nodeValue);
var y=get_previoussibling(x);
document.write("<br />Hermano anterior: ");
document.write(y.nodeName);
document.write(" = ");
document.write(y.childNodes[0].nodeValue);

La salida del código anterior es:

author = Giada De Laurentiis
Hermano anterior: title = Everyday Italian