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; }
public System.Xml.Linq.XNode? PreviousNode { get; }
member this.PreviousNode : System.Xml.Linq.XNode
Public ReadOnly Property PreviousNode As XNode

속성 값

XNode

이전 형제 노드가 들어 있는 XNode입니다.The 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 부모가 없거나 이전 노드가 없는 경우이 속성은을 반환 null 합니다.If 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.

적용 대상