tinyxml解析器怎么样解析嵌套实体xml文件?

揽星逐月酒微醺 2017-03-03 03:25:59
这个是xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE IAP [<!ENTITY SetSimulated SYSTEM "../simulated.xml">]>
<Control>
<PMCI>
<interlocks>
<sintlk>
<sIntlkOpenFinalValve type="instance" class="OpenFinalValve" simulate="false"/>
<sIntlkOpenHeValve type="instance" class="OpenHeValve" simulate="false"/>
<sIntlkOpenTMPPurgeValve type="instance" class="OpenTMPPurgeValve" simulate="false"/>
<sIntlkOpenIonGaugeValve type="instance" class="OpenIonGaugeValve" simulate="false"/>
</sintlk>
</Control>
这个是xml文件解析的代码:
TiXmlDocument *elementnode = NULL;
bool loadokay = false;
elementnode = new TiXmlDocument();
loadokay = elementnode->LoadFile(xmlPath);

if (elementnode->Error() && elementnode->ErrorId() == TiXmlBase::TIXML_ERROR_OPENING_FILE)
{
string fatal = "Parse XML file: " + string(xmlPath) + " failed! The XML parser created a NULL DOMDocument.";
SysLogger::getInstance()->logMsg(LOGBRANCH::RECIPE, LEVEL::FATAL, fatal);
throw XMLParseException(fatal);
}

TiXmlNode *Rootnode = (TiXmlNode*)elementnode->RootElement();
cout<<"Rootnode->Value = "<<Rootnode->Value()<<endl; //这里出现异常

在使用的时候我是直接使用tinyxml文件夹没有编译成库。
不能获取根节点是因为tinyxml解析器不支持嵌套实体的解析吗?还是解析的方法错了?如果不能用来解析嵌套实体,大神可以推荐一个简单好用的xml解析器吗?谢谢了。。。。

...全文
353 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bravery36 2017-03-04
  • 打赏
  • 举报
回复
<PMCI> <interlocks> 这两个都没有结束,这个xml文件本身就不对。tinyxml对日常使用都没有任何问题。
max_min_ 2017-03-03
  • 打赏
  • 举报
回复
搜一下,一大把的例程。。
zgl7903 2017-03-03
  • 打赏
  • 举报
回复
设置断点 单步调试, 查看 LoadFile 是否成功,
  • 打赏
  • 举报
回复
别沉啊!!!

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧