XNode.CompareDocumentOrder(XNode, XNode) 方法

定義

比較兩個節點,以確定其相對的 XML 文件順序。

C#
public static int CompareDocumentOrder (System.Xml.Linq.XNode n1, System.Xml.Linq.XNode n2);
C#
public static int CompareDocumentOrder (System.Xml.Linq.XNode? n1, System.Xml.Linq.XNode? n2);

參數

n1
XNode

要比較的第一個 XNode

n2
XNode

要比較的第二個 XNode

傳回

Int32

int 包含 0 表示這兩個節點相等,包含 -1 表示 n1n2 之前,包含 1 則表示 n1n2 之後。

例外狀況

這兩個節點不會共用共同的祖系。

範例

下列範例會使用這個方法。

C#
XElement xmlTree = new XElement("Root",  
    new XElement("Child1",  
        new XElement("GrandChild1", 1),  
        new XElement("GrandChild2", 2),  
        new XElement("GrandChild3", 3)  
    ),  
    new XElement("Child2",  
        new XElement("GrandChild4", 4),  
        new XElement("GrandChild5", 5),  
        new XElement("GrandChild6", 6)  
    )  
);  
XElement el1 = xmlTree.Descendants("GrandChild2").First();  
XElement el2 = xmlTree.Descendants("GrandChild6").First();  
if (XElement.CompareDocumentOrder(el1, el2) == 0)  
    Console.WriteLine("Compared elements are the same element");  
else if (XElement.CompareDocumentOrder(el1, el2) > 0)  
    Console.WriteLine("el1 is after el2");  
else  
    Console.WriteLine("el1 is before el2");  

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

el1 is before el2  

備註

會將 XContainer 其子節點儲存為物件的單一連結清單 XNode 。 這表示 CompareDocumentOrder 方法必須周遊要比較之兩個節點的上階,直到找到通用父系為止。 然後,它必須周遊一般父節點的子節點清單,以判斷要比較之兩個節點的順序。 因此,使用此方法可能會影響您的效能。

適用於

產品 版本
.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
.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
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

另請參閱