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

XML : Get an array of string from text cut by element

我需要从一个节点中的文本中获取一个字符串数组,该节点本身被 xml 文件中的另一个元素剪切。我在 C 语言中使用 libxml2 库。

例子:
<option>some text <middletag />other text</option>

我尝试使用 xmlNodeGetContent(xmlnode); 但我只得到一个像 "some text other text".

这样的字符串

问题是:是否有可能得到一个字符串数组,在这个例子中,它是 {"some text ", "other text"}

我找到了解决办法,我不得不说我很惭愧,因为我花了太多时间才找到它。

很简单,我再举这个例子:

<option>some text <middletag />other text</option>

有了这个,你可以在 <option> 节点上有一个 xmlnode *。我们可以在列表xmlnode->children中找到带有循环的部分some text <middletag />other text。我们只需要查找类型为 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,我们可以将其保存在数组中。