【问题标题】:Create new node which is the parent of the document创建作为文档父节点的新节点
【发布时间】:2019-07-01 12:23:57
【问题描述】:

我正在使用 C 来解析带有 libxml2 的 XML。

我正在创建一个新节点xmlNewTextChild()

cur = xmlDocGetRootElement( doc );
tvNode = xmlNewTextChild( cur, NULL, "tv", NULL );

我想知道如何创建这个节点,但又不让它成为父节点的子节点,所以新节点基本上是根元素。

谢谢

【问题讨论】:

  • XML 文档的根 element 不能是文本 node
  • @SeanBright 换个说法,我想创建一个没有父节点的新节点?这可能吗?
  • 文本节点?使用xmlNewText?
  • @SeanBright 这个函数的第一个参数是什么,它应该是节点的父节点
  • 阅读我发送的链接中的文档

标签: c xml libxml2


【解决方案1】:
  1. 创建一个新节点

    xmlNodePtr new_root = xmlNewNode(NULL, BAD_CAST "your_root_name");
    
  2. 将其设置为根元素

    xmlNodePtr old_root = xmlDocGetRootElement(doc);
    xmlUnlinkNode(old_root);
    xmlDocSetRootElement(doc, new_root);
    
  3. 将前一个文档的根节点作为子节点附加到新根节点:

    xmlAddChild(new_root, old_root);
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 1970-01-01
    相关资源
    最近更新 更多