XNodeEqualityComparer.Equals(XNode, XNode) 方法

定义

比较两个节点的值。

public:
 virtual bool Equals(System::Xml::Linq::XNode ^ x, System::Xml::Linq::XNode ^ y);
public bool Equals (System.Xml.Linq.XNode x, System.Xml.Linq.XNode y);
public bool Equals (System.Xml.Linq.XNode? x, System.Xml.Linq.XNode? y);
override this.Equals : System.Xml.Linq.XNode * System.Xml.Linq.XNode -> bool
Public Function Equals (x As XNode, y As XNode) As Boolean

参数

x
XNode

要比较的第一个 XNode

y
XNode

要比较的第二个 XNode

返回

指示节点是否相等的 Boolean

实现

示例

以下示例使用此类来比较两个节点。

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")  
);  
XNodeEqualityComparer equalityComparer = new XNodeEqualityComparer();  
Console.WriteLine(equalityComparer.Equals(xmlTree1, xmlTree2));  
xmlTree2.Add(new XElement("NewChild", "new content"));  
Console.WriteLine(equalityComparer.Equals(xmlTree1, xmlTree2));  

该示例产生下面的输出:

True  
False  

注解

以下条件确定两个节点是否相等:

  • 一个 null 节点等于另一个 null 节点,但与非null 节点不相等。

  • 不同类型的两个 XNode 对象永远不会相等。

  • 如果两 XText 个节点包含相同的文本,则它们相等。

  • 如果两个 XElement 节点具有相同的标记名称、具有相同值的属性集,并且 (忽略注释和处理指令) 包含两个成对相等内容节点的等长序列,则两个节点相等。

  • 如果两 XDocument 个对象的根节点相等,则两个对象相等。

  • 如果两 XComment 个节点包含相同的注释文本,则它们相等。

  • 如果两 XProcessingInstruction 个节点具有相同的目标和数据,则它们相等。

  • 如果 具有相同的名称、公共 ID、系统 ID 和内部子集,则两 XDocumentType 个节点相等。

适用于

另请参阅