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,我们可以将其保存在数组中。
我需要从一个节点中的文本中获取一个字符串数组,该节点本身被 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,我们可以将其保存在数组中。