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 和内部子集相同,则两个节点相等。

适用于

另请参阅