Freigeben über


XNode.PreviousNode Eigenschaft

Definition

Ruft den vorherigen nebengeordneten Knoten dieses Knotens ab.

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

Eigenschaftswert

Der XNode, der den vorherigen nebengeordneten Knoten enthält.

Beispiele

Im folgenden Beispiel wird diese Eigenschaft zum Durchlaufen von Knoten verwendet.

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

Dieses Beispiel erzeugt die folgende Ausgabe:

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

Hinweise

Wenn diese XNode kein übergeordnetes Element aufweist oder kein vorheriger Knoten vorhanden ist, gibt diese Eigenschaft zurück null.

Der XContainer speichert seine untergeordneten Knoten als eine singlich verknüpfte Liste von XNode Objekten. Dies bedeutet, dass die PreviousNode -Eigenschaft die Liste der direkten untergeordneten Knoten unter dem übergeordneten Container durchlaufen muss. Daher kann sich die Verwendung dieser Eigenschaft auf Ihre Leistung auswirken.

Gilt für:

Weitere Informationen