Condividi tramite


XNode.PreviousNode Proprietà

Definizione

Ottiene il nodo di pari livello precedente di questo 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

Valore della proprietà

Oggetto XNode che contiene il nodo di pari livello precedente.

Esempio

Nell'esempio seguente viene usata questa proprietà per eseguire il ciclo dei nodi.

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))

Nell'esempio viene prodotto l'output seguente:

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

Commenti

Se non XNode è presente un elemento padre o se non è presente alcun nodo precedente, questa proprietà restituisce null.

I XContainer nodi figlio vengono archiviati come elenco collegato in modo autonomo di XNode oggetti. Ciò significa che la PreviousNode proprietà deve attraversare l'elenco di nodi figlio diretti nel contenitore padre. Pertanto, l'uso di questa proprietà potrebbe influire sulle prestazioni.

Si applica a

Vedi anche