XML:从元素切割的文本中获取字符串数组

时间:2016-10-19 14:47:42

标签: c xml libxml2

我需要从节点中的文本中获取一个字符串数组,该节点本身由xml文件中的其他元素剪切。我使用libxml2库在C中工作。

例如:
xmlNodeGetContent(xmlnode);

我尝试使用"some text other text",但我只得到一个像{"some text ", "other text"}这样的字符串。

问题是:是否有可能获得一个字符串数组,这个例子是{{1}}?

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,我们可以将它保存在数组中。