XNode.CompareDocumentOrder(XNode, XNode) Metoda

Definice

Porovná dva uzly a určí jejich relativní pořadí dokumentů 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

n1
XNode

Nejprve XNode porovnáme.

n2
XNode

Druhý XNode k porovnání.

Návraty

Obsahující int hodnotu 0, pokud jsou uzly stejné; -1 pokud n1 je před n2; 1, pokud n1 je za n2.

Výjimky

Dva uzly nesdílely společný nadřazený uzel.

Příklady

Následující příklad používá tuto metodu.

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

Tento příklad vytvoří následující výstup:

el1 is before el2

Poznámky

Ukládá XContainer podřízené uzly jako ingly propojený seznam XNode objektů. To znamená, že CompareDocumentOrder metoda musí procházet nadřazené prvky dvou uzlů, které se porovnávají, dokud nenajde společný nadřazený objekt. Pak musí procházet seznam společných podřízených uzlů nadřazeného objektu, aby bylo možné určit pořadí porovnávaných dvou uzlů. Proto může použití této metody ovlivnit váš výkon.

Platí pro

Viz také