XNode.PreviousNode 屬性

定義

取得這個節點的上一個同層級節點。Gets the previous sibling node of this node.

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

屬性值

包含上一個同層級節點的 XNodeThe XNode that contains the previous sibling node.

範例

下列範例會使用這個屬性來執行節點的迴圈。The following example uses this property to loop through nodes.

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

這個範例會產生下列輸出:This example produces the following output:

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

備註

如果此 XNode 沒有父系,或沒有上一個節點,則此屬性會傳回 nullIf this XNode does not have a parent, or if there is no previous node, this property returns null.

XContainer 會將其子節點儲存為 XNode 物件的單一連結清單。The XContainer stores its child nodes as a singly-linked list of XNode objects. 這表示 PreviousNode 屬性必須在父容器下的直接子節點清單中進行。This means that the PreviousNode property must traverse the list of direct child nodes under the parent container. 因此,使用這個屬性可能會影響您的效能。Therefore, using this property might affect your performance.

適用於

另請參閱