Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我可以将对象的子对象设置为PugiXML中单独定义的对象吗?_C++_Xml_Pugixml - Fatal编程技术网

C++ 我可以将对象的子对象设置为PugiXML中单独定义的对象吗?

C++ 我可以将对象的子对象设置为PugiXML中单独定义的对象吗?,c++,xml,pugixml,C++,Xml,Pugixml,我想用一个XML文件配置一个设备,我想我可以先用我需要的值创建单个pugi::XML_节点s,然后再将它们创建为文档或某个父节点的子节点。然而,我似乎做错了什么 有效的示例: #include "pugixml.hpp" int main(){ pugi::xml_document xml; pugi::xml_node configRecord = xml.append_child("configrecord"); pugi::

我想用一个XML文件配置一个设备,我想我可以先用我需要的值创建单个
pugi::XML_节点
s,然后再将它们创建为文档或某个父节点的子节点。然而,我似乎做错了什么

有效的示例:

#include "pugixml.hpp"

int main(){
    pugi::xml_document xml;
    pugi::xml_node configRecord = xml.append_child("configrecord");
    pugi::xml_node configGroup = configRecord.append_child("configgroup");
    configGroup.append_attribute("name") = "ftp server";
}
这是因为我首先创建父文档,然后通过添加子文档开始分支。我想我可以先创建节点对象,将它们存储到一个数组中,然后解析该数组以将它们添加到文档中。但这不起作用

#include "pugixml.hpp"

int main(){
    pugi::xml_node myNode;
    myNode.set_name("value");
    myNode.append_child(pugi::node_pcdata).set_value("enable");
    pugi::xml_document docu;
    docu.set_name("document");
    docu.child(myNode); // <- error here, cannot add child to document
}
#包括“pugixml.hpp”
int main(){
pugi::xml_node myNode;
myNode.set_名称(“值”);
myNode.append_child(pugi::node_pcdata).set_值(“enable”);
pugi::xml_文档docu;
文件集名称(“文件”);
docu.child(myNode);//声明
pugi::xml_node
是一个非所有权指针,指向存储在
pugi::xml_文档中的实际节点数据
对象:

xml\u节点
是文档节点的句柄;它可以指向文档中的任何节点 文档,包括文档节点本身 所有类型节点的接口,可查询实际节点类型 通过
xml\u节点::type()
方法。请注意
xml\u节点
只是一个句柄 到实际节点,而不是节点本身

没有文档树,节点和属性就不存在,因此 如果不将它们添加到某个文档中,则无法创建它们

在我看来,当您尝试操作
myNode
时,代码似乎不会抛出错误,因为默认构造的“null”节点会默默地使用它们上的操作,以使链接更容易:

所有操作都是在空节点上定义的;通常是 不执行任何操作并返回空节点/属性或空字符串 因此[…]这对于链接调用非常有用


你是对的,我在浏览有关这个问题的文档时,不知何故忽略了这一点。看起来我采取的方法确实需要改进。