我需要从节点中的文本中获取一个字符串数组,该节点本身由xml文件中的其他元素剪切。我使用libxml2库在C中工作。
例如:
xmlNodeGetContent(xmlnode);
我尝试使用"some text other text"
,但我只得到一个像{"some text ", "other text"}
这样的字符串。
问题是:是否有可能获得一个字符串数组,这个例子是{{1}}?
答案 0 :(得分:4)
我找到了解决方案,我不得不说我感到惭愧,因为我花了太多时间才找到它。
这很简单,我再次举了这个例子:
<option>some text <middletag />other text</option>
使用此功能,您可以在xmlnode *
节点上拥有<option>
。我们可以在列表some text <middletag />other text
上找到带有循环的部分xmlnode->children
。我们只需要查找类型为XML_TEXT_NODE
的节点并获取内容。
代码:
xmlNode *node = option_node->children;
for (; node; node = node->next){
if (node->type == XML_TEXT_NODE) {
printf("%s\n", node->content);
}
}
结果:
some text
other text
现在,使用malloc / realloc,我们可以将它保存在数组中。