XNode.CompareDocumentOrder(XNode, XNode) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
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.