XNode.CompareDocumentOrder(XNode, XNode) Yöntem

Tanım

göreli XML belge sırasını belirlemek için iki düğümü karşılaştırır.

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

Parametreler

n1
XNode

Karşılaştıracak ilk XNode şey.

n2
XNode

Karşılaştırmak için ikinci XNode .

Döndürülenler

int Düğümler eşitse 0 içeren bir; önceyse n1n2 -1; sonraysa n1n21 olur.

Özel durumlar

İki düğüm ortak bir atayı paylaşmaz.

Örnekler

Aşağıdaki örnek bu yöntemi kullanır.

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

Bu örnek aşağıdaki çıkışı oluşturur:

el1 is before el2

Açıklamalar

alt XContainer düğümlerini nesnelerin tek bağlantılı bir listesi XNode olarak depolar. Bu, yöntemin CompareDocumentOrder ortak üst öğeyi bulana kadar karşılaştırılan iki düğümün üst öğelerinden geçmesi gerektiği anlamına gelir. Ardından, karşılaştırılan iki düğümün sırasını belirlemek için ortak üst düğümün alt düğümlerinin listesinden geçmesi gerekir. Bu nedenle, bu yöntemin kullanılması performansınızı etkileyebilir.

Şunlara uygulanır

Ayrıca bkz.