提问人:John Mulaney 提问时间:5/24/2021 最后编辑:Andrew TruckleJohn Mulaney 更新时间:6/11/2021 访问量:162
tinyxml2 的 TiXmlAttribute 是什么,如何使用它?
What is the equivalent of TiXmlAttribute for tinyxml2 and how to use it?
问:
我遇到了一个问题,我无法使用 tinyxml2 解决。
我有一个作为参数 a 接收的函数,我需要遍历它的属性。使用 tinyxml,这有效:XMLElement
void xmlreadLight(TiXmlElement* light){
for (TiXmlAttribute* a = light->FirstAttribute(); a ; a = a->Next()) {
//Do stuff
}
}
与tinyxml2使用相同的方法,如下面的示例所示,我收到以下错误:
Type 的值不能用于初始化 Type 的实体
const tinyxml2::XMLAttribute *
tinyxml2::XMLAttribute *
void xmlreadLight(XMLElement* light){
for (XMLAttribute* a = light->FirstAttribute(); a ; a = a->Next()) {
//Do stuff
}
}
有问题的 XML 代码是:
<lights>
<light type="POINT" posX=-1.0 posY=1.0 posZ=-1.0 ambtR=1.0 ambtG=1.0 ambtB=1.0 />
</lights>
其中 light 是传递到函数中的。不确定我的问题是否正确设置,所以如果缺少一些信息,请告诉我。XMLElement
xmlreadLight
答:
2赞
Paul Sanders
5/24/2021
#1
根据错误消息,您似乎需要执行以下操作:
for (const XMLAttribute* a = light->FirstAttribute(); a ; a = a->Next()) { ...
^^^^^
据推测,返回类型 的 是在 tinyxml2 中完成的。FirstAttribute
const
如果你在 Github 存储库的第 1513 行检查 tinyxml2.h
文件,你会看到这个:
/// Return the first attribute in the list.
const XMLAttribute* FirstAttribute() const {
return _rootAttribute;
}
评论
0赞
John Mulaney
5/24/2021
我试过了,但似乎我缺少一些调试信息。我以为应用程序因此而没有运行,即使使用 const,但代码中还有另一个错误。谢谢,这就是我需要的解决方案。
评论