比较两个元素是否相同(比较名称、属性和文本内容)。
int32_t XmlCompareElements(int64_t element1, int64_t element2, int32_t deep, int32_t* err)
| 参数名 | 类型 | 说明 |
|---|
| element1 | int64_t | 第一个元素句柄 |
| element2 | int64_t | 第二个元素句柄 |
| deep | int32_t | 是否深度比较(包括所有子元素) |
| err | int32_t* | 错误码输出参数,可为NULL |
int32_t err = 0;
int64_t doc1 = XmlParse("<server host=\"localhost\" port=\"8080\"/>", &err);
int64_t doc2 = XmlParse("<server host=\"localhost\" port=\"8080\"/>", &err);
int64_t elem1 = XmlGetRootElement(doc1, &err);
int64_t elem2 = XmlGetRootElement(doc2, &err);
int32_t result = XmlCompareElements(elem1, elem2, 0, &err);
printf("浅比较结果:%s\n", result ? "相同" : "不同");
result = XmlCompareElements(elem1, elem2, 1, &err);
printf("深度比较结果:%s\n", result ? "相同" : "不同");
XmlFree(doc1);
XmlFree(doc2);
- deep=0 时只比较当前元素的名称、属性和文本
- deep=1 时递归比较所有子元素
- 属性顺序不影响比较结果