Compartir a través de


XNode.PreviousNode Propiedad

Definición

Obtiene el anterior nodo relacionado de este nodo.

public:
 property System::Xml::Linq::XNode ^ PreviousNode { System::Xml::Linq::XNode ^ get(); };
public System.Xml.Linq.XNode PreviousNode { get; }
public System.Xml.Linq.XNode? PreviousNode { get; }
member this.PreviousNode : System.Xml.Linq.XNode
Public ReadOnly Property PreviousNode As XNode

Valor de propiedad

XNode que contiene el nodo relacionado anterior.

Ejemplos

En el ejemplo siguiente se usa esta propiedad para recorrer nodos.

XElement xmlTree = new XElement("Root",
    new XElement("Child1", 1),
    new XText("Some Text"),
    new XElement("Child2",
        2,
        new XElement("GrandChild", "GrandChild Content")
    ),
    new XComment("a comment"),
    new XElement("Child3")
);
XNode node = xmlTree.Element("Child2");
do {
    StringBuilder sb = new StringBuilder();
    sb.Append(String.Format("NodeType: {0}", node.NodeType.ToString().PadRight(10)));
    switch (node.NodeType)
    {
        case XmlNodeType.Text:
            sb.Append((node as XText).Value);
            break;
        case XmlNodeType.Element:
            sb.Append((node as XElement).Name);
            break;
        case XmlNodeType.Comment:
            sb.Append((node as XComment).Value);
            break;
    }
    Console.WriteLine(sb.ToString());
}
while ((node = node.PreviousNode) != null);
Dim xmlTree As XElement = _
    <Root>
        <Child1>1</Child1>Some Text<Child2>2
            <GrandChild>GrandChild Content</GrandChild>
        </Child2>
        <!--a comment-->
        <Child3>3</Child3>
    </Root>

Dim node As XNode = xmlTree.Element("Child2")
Do
    Dim sb As StringBuilder = New StringBuilder()
    sb.Append(String.Format("NodeType: {0}", node.NodeType.ToString().PadRight(10)))
    Select Case node.NodeType
        Case XmlNodeType.Text
            sb.Append(DirectCast(node, XText).Value)
        Case XmlNodeType.Element
            sb.Append(DirectCast(node, XElement).Name)
        Case XmlNodeType.Comment
            sb.Append(DirectCast(node, XComment).Value)
    End Select
    Console.WriteLine(sb.ToString())

    node = node.PreviousNode
Loop While (Not (node Is Nothing))

Este ejemplo produce el siguiente resultado:

NodeType: Element   Child2
NodeType: Text      Some Text
NodeType: Element   Child1

Comentarios

Si esto XNode no tiene un elemento primario o si no hay ningún nodo anterior, esta propiedad devuelve null.

XContainer almacena sus nodos secundarios como una lista vinculada de forma singly de XNode objetos. Esto significa que la PreviousNode propiedad debe atravesar la lista de nodos secundarios directos bajo el contenedor primario. Por lo tanto, el uso de esta propiedad podría afectar al rendimiento.

Se aplica a

Consulte también