다음을 통해 공유


XNode.PreviousNode 속성

정의

이 노드의 이전 형제 노드를 가져옵니다.

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 이전 형제 노드를 포함하는 노드입니다.

예제

다음 예제에서는 이 속성을 사용하여 노드를 반복합니다.

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

이 예제는 다음과 같은 출력을 생성합니다.

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

설명

부모 XNode 노드가 없거나 이전 노드가 없으면 이 속성이 반환됩니다 null.

XContainer 식 노드는 자동으로 연결된 개체 목록 XNode 으로 저장됩니다. 즉, 속성은 PreviousNode 부모 컨테이너 아래의 직접 자식 노드 목록을 트래버스해야 합니다. 따라서 이 속성을 사용하면 성능에 영향을 줄 수 있습니다.

적용 대상

추가 정보