XNode.PreviousNode XNode.PreviousNode XNode.PreviousNode XNode.PreviousNode Property

定義

このノードの前の兄弟ノードを取得します。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は、親がないか、前のノードがない場合は、このプロパティを返します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.

適用対象

こちらもご覧ください