如何使用libxml2获取这些XML元素?

mur*_*tek 0 xml libxml2

我有一个XML结构:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<root>
<item>
    <foo1>1</foo1>
    <foo2>2</foo2>
</item>
<item>
    <foo1>3</foo1>
    <foo2>4</foo2>
</item>
</root>
Run Code Online (Sandbox Code Playgroud)

现在我把所有孩子都带上for循环:

for (pCurrentElement...) {

}
Run Code Online (Sandbox Code Playgroud)

现在我想访问throw pCurrentElement foo1和foo2,但我不知道如何.我使用LIBXML2

我可以得到foo1:

pChildElement = pCurrentElement->children->next;
pChildElement->children->content // foo1
Run Code Online (Sandbox Code Playgroud)

但我现在不知道如何获得foo2?

Rem*_*eau 5

默认情况下,libxml2将文档中的空白分析为自己的子节点.如果foo1和foo2前面有空格,那么foo1将是pCurrentElement->children->next,而foo2将是pCurrentElement->children->next->next->next.

如果你禁用空格解析,使用xmlKeepBlanksDefault(0)或者xmlReadDoc(..., XML_PARSE_NOBLANKS),那么foo1将会改为pCurrentElement->childrenfoo2 pCurrentElement->children->next.