XNodeEqualityComparer.Equals(XNode, XNode) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
比较两个节点的值。
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
参数
返回
指示 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 个节点具有相同的目标和数据,则两个节点相等。
XDocumentType如果两个节点的名称、公共 ID、系统 ID 和内部子集相同,则两个节点相等。