根据属性查找元素 - XmlFindElementByAttribute
函数简介
查找具有指定属性值的子元素。
接口名称
XmlFindElementByAttribute
DLL调用
int64_t XmlFindElementByAttribute(int64_t parent, const char* elementName, const char* attrName, const char* attrValue, int32_t* err);
参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| parent | 长整数型 | 父元素句柄 |
| elementName | 字符串 | 元素名称(可为NULL表示任意元素) |
| attrName | 字符串 | 属性名称 |
| attrValue | 字符串 | 属性值 |
| err | 整数型 | 错误码输出参数,可为NULL |
示例
int32_t err = 0;
const char* xmlStr =
"<servers>"
" <server name=\"web\" host=\"192.168.1.1\"/>"
" <server name=\"db\" host=\"192.168.1.2\"/>"
"</servers>";
int64_t doc = XmlParse(xmlStr, &err);
int64_t root = XmlGetRootElement(doc, &err);
// 查找name为"db"的server元素
int64_t dbServer = XmlFindElementByAttribute(root, "server", "name", "db", &err);
if (dbServer != 0) {
const char* host = XmlGetAttribute(dbServer, "host", &err);
printf("数据库服务器:%s\n", host);
FreeStringPtr(instance, host);
}
XmlFree(doc);
返回值
返回找到的元素句柄,失败时返回0。
注意事项
- elementName为NULL时,查找任意元素
- 只查找直接子元素
- 如果有多个匹配,返回第一个
