XNode.CompareDocumentOrder(XNode, XNode) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Confronta due nodi per determinare l'ordine relativo del documento 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
Parametri
Valori restituiti
Oggetto int contenente 0 se i nodi sono uguali; -1 se n1 è prima n2di ; 1 se n1 è dopo n2.
Eccezioni
I due nodi non condividono un predecessore comune.
Esempio
Nell'esempio seguente viene utilizzato questo metodo.
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 questo esempio viene generato l'output seguente:
el1 is before el2
Commenti
Archivia XContainer i nodi figlio come elenco XNode di oggetti collegati a singly. Ciò significa che il CompareDocumentOrder metodo deve attraversare i predecessori dei due nodi confrontati finché non trova l'elemento padre comune. Deve quindi attraversare l'elenco dei nodi figlio dell'elemento padre comune per determinare l'ordine dei due nodi confrontati. Pertanto, l'uso di questo metodo potrebbe influire sulle prestazioni.