EZXML C 解析 API
EZXML C Parsing API
我可以这样使用 ezxml_get 函数来计算父标签 books 中子 book 标签的数量吗?如果未找到子标签,函数 returns NULL.
int books_cnt = 0;
for(i=0; i<100; i++)
{
if((ezxml_get(xml_file, "books", 0, "book", i) != NULL)
{
books_cnt++;
}
}
这就是 xml 的样子
<books>
<book>
</book>
<book>
</book>
.
.
.
.
</books>
是的,你可以。你没试过吗?快速查看 ezxml page,使用 ezxml_child()
并循环遍历链表,同时计算自己的数量可能要好得多(就性能而言)
[edit] 以完全阐明......网站给出了这个示例代码:
for (team = ezxml_child(f1, "team"); team; team = team->next) {
teamname = ezxml_attr(team, "name");
for (driver = ezxml_child(team, "driver"); driver; driver = driver->next) {
printf("%s, %s: %s\n", ezxml_child(driver, "name")->txt, teamname,
ezxml_child(driver, "points")->txt);
}
}
所以只需使用类似外循环的东西并计数,例如:
int i = 0;
for (book = ezxml_child(xml_file, "book"); book; book = book->next) ++i;
我可以这样使用 ezxml_get 函数来计算父标签 books 中子 book 标签的数量吗?如果未找到子标签,函数 returns NULL.
int books_cnt = 0;
for(i=0; i<100; i++)
{
if((ezxml_get(xml_file, "books", 0, "book", i) != NULL)
{
books_cnt++;
}
}
这就是 xml 的样子
<books>
<book>
</book>
<book>
</book>
.
.
.
.
</books>
是的,你可以。你没试过吗?快速查看 ezxml page,使用 ezxml_child()
并循环遍历链表,同时计算自己的数量可能要好得多(就性能而言)
[edit] 以完全阐明......网站给出了这个示例代码:
for (team = ezxml_child(f1, "team"); team; team = team->next) {
teamname = ezxml_attr(team, "name");
for (driver = ezxml_child(team, "driver"); driver; driver = driver->next) {
printf("%s, %s: %s\n", ezxml_child(driver, "name")->txt, teamname,
ezxml_child(driver, "points")->txt);
}
}
所以只需使用类似外循环的东西并计数,例如:
int i = 0;
for (book = ezxml_child(xml_file, "book"); book; book = book->next) ++i;