使用 Pugixml 解析使用 C++ 但无法获取所有节点属性的数据
using pugixml to parse data using C++ but unable to get all the node attributes
我做了一个解析函数的代码,但它不会解析参数(名称,类型) 我的代码:
xml_node GCC_XML = doc.child("GCC_XML");
{
for (xml_node Function = GCC_XML.child("Function");Function; Function= Function.next_sibling("Function"))
{
cout<<"Functionn"<<"id= "<<Function.attribute("id").value()<<" , name= "<<Function.attribute("name").value()<<" ,returns: "<<Function.attribute("returns").value()<<Function.child_value("Argument") <<endl;
}
}
那是我尝试解析的XML文件
<?xml version="1.0"?>
<GCC_XML>
<Namespace id="_1" name="::" members="_2 _3 _4 "/>
<Function id="_2" name="main" returns="_5" context="_1" location="f0:8"/>
<Function id="_3" name="a_function" returns="_5" context="_1" location="f0:4">
<Argument name="f" type="_6"/>
<Argument name="e" type="_4"/>
</Function>
<Struct id="_4" name="EmptyClass" context="_1" location="f0:1" members="_7 _8 " bases=""/>
<FundamentalType id="_5" name="int"/>
<FundamentalType id="_6" name="float"/>
<Constructor id="_7" name="EmptyClass" context="_4" location="f0:1">
<Argument name="_ctor_arg" type="_9"/>
</Constructor>
<Constructor id="_8" name="EmptyClass" context="_4" location="f0:1"/>
<ReferenceType id="_9" type="_4c"/>
<File id="f0" name="example1.cxx"/>
</GCC_XML>
问题是它拒绝读取函数参数,我的结果是:
Load result: No error
Function
id= _2 , name= main ,returns: _5
Function
id= _3 , name= a_function ,returns: _5
我也试过
cout<<"Functionn"<<"id= "<<Function.attribute("id").value()<<" , name= "<<Function.attribute("name").value()<<" ,returns: "<<Function.attribute("returns").value()<<Function.attribute("Argument") <<endl;
把它给出了相同的结果,只是在参数输出中添加了 0 个输出,表明它没有读取它
把我得到上面的相同结果
Argument
不是 属性。它是一个元素,一个Function
的子元素。访问子元素的方式与访问任何元素的方式相同。
xml_node::child_value
查找具有给定名称(在本例中为Argument
)的 XML 元素,并返回该元素的第一个子文本节点的文本。 Argument
中的 XML 文件中为空;它没有子文本节点。它有属性节点,但这不是一回事。如果你想要 Argument
的属性,你必须要求它们,就像你要求Function
节点的属性一样。
相关文章:
- 如何在pugixml中获取节点的内部XML
- 如何在C++中使用带有SFML的http reqest从节点.js服务器获取数据?
- 使用 Netlink 获取进程索引节点
- 如何仅在 2 个节点之间获取最短路径,给定邻接列表有向图?
- C++中是否有一个函数可以为您获取指向该节点的所有指针的地址空间
- 如何获取列表中有子项的树的节点总和?
- 媒体基础获取拓扑节点的 IMFMedia类型
- 从系统表中获取节点状态
- 为什么我不能将从我的 BST 获取的这个节点推送到这个堆栈中?
- c++ 无法从 XML 获取所有子节点
- 有没有办法通过 LEMON 图形库中的 Map 值获取节点?
- TinyXML2 从节点和所有子节点获取文本
- C 在单链接列表中获取以前的节点以匹配节点
- 无法使用 libxml2 和 xpath 获取节点
- 小啰嗦。获取节点(或"raw content")的全文?
- 如何获取节点的宽度
- XML 获取节点的属性值
- 如何从双链表中获取节点内部的有效负载
- 从 boost::labeled_graph 获取节点标签
- 给定链表中的节点地址,获取节点的地址