怎么比较两个IXMLDOMNode是否相等
如何比较两个IXMLDOMNode是否相等?
通过不同途径获取的两个IHTMLElement*元素pIHTMLElement1,pIHTMLElement2,
如果pIHTMLElement1->contains(pIHTMLElement2,...)和pIHTMLElement2->contains(pIHTMLElement1,...)的out值都VARIANT_TRUE那么就可以判定pIHTMLElement1和pIHTMLElement2是同一个元素。
但是如是通过不同途径获取的两个IXMLDOMNode*节点pXMLDOMNode1,pXMLDOMNode2,
IXMLDOMNode接口没有类似于IHTMLElement接口的contains方法,又如何判定两个IXMLDOMNode*节点是否是同一个节点?
不完美的方案:
1,用IXMLDOMNode接口的get_xml方法获取并比较两个节点的内部xml。但这个方法明显有缺陷:不同的xml节点的内容可以是一样的。
2,在实际设计中,尽力控制xml内容,避免出现内容完全的一致的节点。但意外无所不在。
求更好的解决思路。
------解决方案--------------------
这种小技巧简单的情况下没问题,但极端情况下肯定不行,比如真的有个属性叫_check你怎么办
直接比较IUnknown可以吗?
通过不同途径获取的两个IHTMLElement*元素pIHTMLElement1,pIHTMLElement2,
如果pIHTMLElement1->contains(pIHTMLElement2,...)和pIHTMLElement2->contains(pIHTMLElement1,...)的out值都VARIANT_TRUE那么就可以判定pIHTMLElement1和pIHTMLElement2是同一个元素。
但是如是通过不同途径获取的两个IXMLDOMNode*节点pXMLDOMNode1,pXMLDOMNode2,
IXMLDOMNode接口没有类似于IHTMLElement接口的contains方法,又如何判定两个IXMLDOMNode*节点是否是同一个节点?
不完美的方案:
1,用IXMLDOMNode接口的get_xml方法获取并比较两个节点的内部xml。但这个方法明显有缺陷:不同的xml节点的内容可以是一样的。
2,在实际设计中,尽力控制xml内容,避免出现内容完全的一致的节点。但意外无所不在。
求更好的解决思路。
------解决方案--------------------
这种小技巧简单的情况下没问题,但极端情况下肯定不行,比如真的有个属性叫_check你怎么办
直接比较IUnknown可以吗?