語言

XNode.DeepEquals(XNode, XNode) 方法

定義

比較兩個節點的值,包括所有後代節點的值。

public:
 static bool DeepEquals(System::Xml::Linq::XNode ^ n1, System::Xml::Linq::XNode ^ n2);
public static bool DeepEquals(System.Xml.Linq.XNode n1, System.Xml.Linq.XNode n2);
public static bool DeepEquals(System.Xml.Linq.XNode? n1, System.Xml.Linq.XNode? n2);
static member DeepEquals : System.Xml.Linq.XNode * System.Xml.Linq.XNode -> bool
Public Shared Function DeepEquals (n1 As XNode, n2 As XNode) As Boolean

參數

n1
XNode

這是第一個 XNode 比較的。

n2
XNode

第二個 XNode 是比較用來比較的。

傳回

true 若節點相等;否則 false。

範例

以下範例使用此方法比較兩棵 XML 樹。

XElement xmlTree1 = new XElement("Root",
    new XAttribute("Att1", 1),
    new XAttribute("Att2", 2),
    new XElement("Child1", 1),
    new XElement("Child2", "some content")
);
XElement xmlTree2 = new XElement("Root",
    new XAttribute("Att1", 1),
    new XAttribute("Att2", 2),
    new XElement("Child1", 1),
    new XElement("Child2", "some content")
);
Console.WriteLine(XNode.DeepEquals(xmlTree1, xmlTree2));
Dim xmlTree1 As XElement = _
        <Root Att1="1" Att2="2">
            <Child1>1</Child1>
            <Child2>some content</Child2>
        </Root>

Dim xmlTree2 As XElement = _
        <Root Att1="1" Att2="2">
            <Child1>1</Child1>
            <Child2>some content</Child2>
        </Root>

Console.WriteLine(XNode.DeepEquals(xmlTree1, xmlTree2))

此範例會產生下列輸出:

True

備註

以下標準判斷兩個節點是否相等:

  • 節點 null 等於另一個 null 節點,但不等於非節點null 。

  • 兩種 XNode 不同類型的物體永遠不會相等。

  • 若兩個 XText 節點包含相同文字,則稱它們相等。

  • 若兩個 XElement 節點擁有相同的標籤名稱、相同的屬性集合和相同的值,且(忽略註解與處理指令)包含兩個長度相等且內容節點相等的序列,則稱它們相等。

  • 若兩個 XDocument 節點的根節點相等,則稱它們相等。

  • 若兩個 XComment 節點包含相同的註解文字,則稱它們相等。

  • 若兩個 XProcessingInstruction 節點擁有相同的目標和資料,則它們相等。

  • 若兩個 XDocumentType 節點名稱、公共 ID、系統 ID 及內部子集相同,則兩者相等。

適用於

另請參閱