解析 xml 值

发布于 2024-12-07 17:47:56 字数 400 浏览 0 评论 0原文

我在 ac 代码中按以下方式定义了一个简单的 xml 字符串:

char xmlstr[] = "<root><str1>Welcome</str1><str2>to</str2><str3>wonderland</str3></root>";

我想解析 xmlstr 以获取分配给 str1、str2、str3 标签的所有值。

我正在使用 libxml2 库。由于我在 xml 处理方面经验不足,因此无法获取所需标签的值。我尝试了一些来自网络的来源,但我结束了错误的输出。

I have a simple xml string defined in the following way in a c code:

char xmlstr[] = "<root><str1>Welcome</str1><str2>to</str2><str3>wonderland</str3></root>";

I want to parse the xmlstr to fetch all the values assigned to str1,str2,str3 tags.

I am using libxml2 library. As I am less experienced in xml handling, I unable get the values of the required tags. I tried some sources from net, but I am ending wrong outputs.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

oО清风挽发oО 2024-12-14 17:47:56

使用 libxml2 库解析字符串看起来像这样:

char xmlstr[] = ...;
char *str1, *str2, *str3;
xmlDocPtr doc = xmlReadDoc(BAD_CAST xmlstr, "http://someurl", NULL, 0);
xmlNodePtr root, child;

if(!doc)
{ /* error */ }

root = xmlDocGetRootElement(doc);

现在我们已经从 xml 字符串中解析出 DOM 结构,我们可以通过迭代 root 标记的所有子值来提取值:

for(child = root->children; child != NULL; child = child->next)
{
    if(xmlStrcmp(child->name, BAD_CAST "str1") == 0)
    {
        str1 = (char *)xmlNodeGetContent(child);
    }

    /* repeat for str2 and str3 */
    ...
}

Using the libxml2 library parsing your string would look something like this:

char xmlstr[] = ...;
char *str1, *str2, *str3;
xmlDocPtr doc = xmlReadDoc(BAD_CAST xmlstr, "http://someurl", NULL, 0);
xmlNodePtr root, child;

if(!doc)
{ /* error */ }

root = xmlDocGetRootElement(doc);

now that we have parsed a DOM structure out of your xml string, we can extract the values by iterating over all child values of your root tag:

for(child = root->children; child != NULL; child = child->next)
{
    if(xmlStrcmp(child->name, BAD_CAST "str1") == 0)
    {
        str1 = (char *)xmlNodeGetContent(child);
    }

    /* repeat for str2 and str3 */
    ...
}
霊感 2024-12-14 17:47:56

我通常使用 minixml 库进行 xml 解析,

希望这对您有帮助

http://www.minixml .org/documentation.php/basics.html

I usual do xml parsing using minixml library

u hope this will help you

http://www.minixml.org/documentation.php/basics.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文