XNode.CompareDocumentOrder(XNode, XNode) Methode

Definitie

Vergelijkt twee knooppunten om de relatieve XML-documentvolgorde te bepalen.

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

Parameters

n1
XNode

Eerst XNode om te vergelijken.

n2
XNode

Ten tweede XNode om te vergelijken.

Retouren

Een int die 0 bevat als de knooppunten gelijk zijn; -1 als n1 dat vóór n2is; 1 als n1 dat na n2is.

Uitzonderingen

De twee knooppunten delen geen gemeenschappelijke voorouder.

Voorbeelden

In het volgende voorbeeld wordt deze methode gebruikt.

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

In dit voorbeeld wordt de volgende uitvoer gegenereerd:

el1 is before el2

Opmerkingen

De XContainer onderliggende knooppunten worden opgeslagen als een singly-gekoppelde lijst XNode met objecten. Dit betekent dat de CompareDocumentOrder methode de bovenliggende elementen van de twee knooppunten moet doorlopen die worden vergeleken totdat de gemeenschappelijke bovenliggende methode wordt gevonden. Vervolgens moet de lijst met de onderliggende knooppunten van het bovenliggende item worden doorlopen om de volgorde te bepalen van de twee knooppunten die worden vergeleken. Daarom kan het gebruik van deze methode van invloed zijn op uw prestaties.

Van toepassing op

Zie ook