我有一个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?
默认情况下,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.