XNode.CompareDocumentOrder(XNode, XNode) Metoda

Definicja

Porównuje dwa węzły, aby określić ich względną kolejność dokumentów 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);

Parametry

n1
XNode

Najpierw XNode należy porównać.

n2
XNode

Drugi XNode do porównania.

Zwraca

Wartość zawierająca int 0, jeśli węzły są równe; -1, jeśli n1 jest wcześniejsza n2; 1, jeśli n1 jest po n2.

Wyjątki

Dwa węzły nie współdzielą wspólnego przodka.

Przykłady

W poniższym przykładzie użyto tej metody.

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

Ten przykład generuje następujące wyniki:

el1 is before el2  

Uwagi

Obiekt XContainer przechowuje węzły podrzędne jako listę obiektów połączonych XNode ze sobą. Oznacza to, że CompareDocumentOrder metoda musi przechodzić przez elementy nadrzędne dwóch węzłów porównywanych do momentu znalezienia wspólnego elementu nadrzędnego. Następnie musi przechodzić przez listę węzłów podrzędnych wspólnego elementu nadrzędnego, aby określić kolejność porównywanych dwóch węzłów. W związku z tym użycie tej metody może mieć wpływ na wydajność.

Dotyczy

Produkt Wersje
.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

Zobacz też