XNode.PreviousNode 屬性

定義

取得這個節點的上一個同層級節點。

C#
public System.Xml.Linq.XNode PreviousNode { get; }
C#
public System.Xml.Linq.XNode? PreviousNode { get; }

屬性值

包含上一個同層級節點的 XNode

範例

下列範例會使用這個屬性來迴圈查看節點。

C#
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);  

這個範例會產生下列輸出:

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

備註

如果這個 XNode 沒有父節點,或沒有先前的節點,則這個屬性會傳 null 回 。

會將 XContainer 其子節點儲存為物件的單一連結清單 XNode 。 這表示 PreviousNode 屬性必須周遊父容器底下的直接子節點清單。 因此,使用此屬性可能會影響您的效能。

適用於

產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

另請參閱