无法在C中使用Libxml2分析XML
我是libxml2新手,从一个示例开始,我不明白为什么我的示例代码不读取一些标记。我用这种方式创建XML文件无法在C中使用Libxml2分析XML,c,xml,libxml2,C,Xml,Libxml2,我是libxml2新手,从一个示例开始,我不明白为什么我的示例代码不读取一些标记。我用这种方式创建XML文件 <ACCOUNTS> <ACCOUNT NO="123"> <STATE>GA</STATE> <NAME>John</NAME> </ACCOUNT> <ACCOUNT NO="123"> <STATE>GA</STATE> <NAME>Burgess&l
<ACCOUNTS>
<ACCOUNT NO="123">
<STATE>GA</STATE>
<NAME>John</NAME>
</ACCOUNT>
<ACCOUNT NO="123">
<STATE>GA</STATE>
<NAME>Burgess</NAME>
</ACCOUNT>
</ACCOUNTS>
当我调试时,我注意到它第一次转到ACCOUNT标记并获取值,然后转到下一个ACCOUNT标记,忽略STATE和NAME标记。这个程序有什么问题,这是正确的方法吗?首先,我不是libxml2方面的专家。但是,您注意到代码从节点帐户转到下一个节点帐户。这是因为其他节点位于这些帐户节点下。为了获得这些被遗忘的子节点,必须进入子节点层次结构 如果你这样看,可能会更容易理解:
<ACCOUNTS>
<ACCOUNT NO="123">
<STATE>GA</STATE>
<NAME>John</NAME>
</ACCOUNT>
<ACCOUNT NO="123">
<STATE>GA</STATE>
<NAME>Burgess</NAME>
</ACCOUNT>
</ACCOUNTS>
希望这有帮助
<ACCOUNTS>
<ACCOUNT NO="123">
<STATE>GA</STATE>
<NAME>John</NAME>
</ACCOUNT>
<ACCOUNT NO="123">
<STATE>GA</STATE>
<NAME>Burgess</NAME>
</ACCOUNT>
</ACCOUNTS>
subnode = cur->xmlChildrenNode;
while (subnode != NULL) {
if ((!xmlStrcmp(subnode->name, (const xmlChar *)"STATE"))) {
// more things...
}
}