XNode.CompareDocumentOrder(XNode, XNode) Méthode

Définition

Compare deux nœuds pour déterminer leur ordre de document XML relatif.

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

Paramètres

n1
XNode

Commencez par XNode comparer.

n2
XNode

Deuxièmement XNode à comparer.

Retours

Contenant int 0 si les nœuds sont égaux ; -1 si n1 c’est avant n2; 1 si c’est n1 après n2.

Exceptions

Les deux nœuds ne partagent pas d’ancêtre commun.

Exemples

L’exemple suivant utilise cette méthode.

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

Cet exemple produit la sortie suivante :

el1 is before el2

Remarques

Les XContainer nœuds enfants sont stockés sous la forme d’une liste d’objets XNode liée de manièreingly. Cela signifie que la CompareDocumentOrder méthode doit parcourir les ancêtres des deux nœuds comparés jusqu’à ce qu’elle trouve le parent commun. Ensuite, il doit parcourir la liste des nœuds enfants du parent commun pour déterminer l’ordre des deux nœuds comparés. Par conséquent, l’utilisation de cette méthode peut affecter vos performances.

S’applique à

Voir aussi