XNode.CompareDocumentOrder(XNode, XNode) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Porównuje dwa węzły, aby określić ich względną kolejność dokumentów XML.
public:
static int CompareDocumentOrder(System::Xml::Linq::XNode ^ n1, System::Xml::Linq::XNode ^ n2);
public static int CompareDocumentOrder (System.Xml.Linq.XNode n1, System.Xml.Linq.XNode n2);
public static int CompareDocumentOrder (System.Xml.Linq.XNode? n1, System.Xml.Linq.XNode? n2);
static member CompareDocumentOrder : System.Xml.Linq.XNode * System.Xml.Linq.XNode -> int
Public Shared Function CompareDocumentOrder (n1 As XNode, n2 As XNode) As Integer
Parametry
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.
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");
Dim xmlTree As XElement = _
<Root>
<Child1>
<GrandChild1>1</GrandChild1>
<GrandChild2>2</GrandChild2>
<GrandChild3>3</GrandChild3>
</Child1>
<Child2>
<GrandChild4>4</GrandChild4>
<GrandChild5>5</GrandChild5>
<GrandChild6>6</GrandChild6>
</Child2>
</Root>
Dim el1 As XElement = xmlTree...<GrandChild2>(0)
Dim el2 As XElement = xmlTree...<GrandChild6>(0)
If (XElement.CompareDocumentOrder(el1, el2) = 0) Then
Console.WriteLine("Compared elements are the same element")
ElseIf (XElement.CompareDocumentOrder(el1, el2) > 0) Then
Console.WriteLine("el1 is after el2")
Else
Console.WriteLine("el1 is before el2")
End If
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ść.