我用CMarkup类进行对XML文件的操作,但是载入XML文件老是失败,这是我的函数,其中fp是路径,
void CTranslateDlg::OnButton() 
{
         CMarkup xml;    
bool bload=false;
bool bfind=false; bload=xml.Load(fp);//fp表示路径
if (bload)//bload为什么不是true????
{        MessageBox("");
CString que;
            CString ans;
xml.ResetMainPos();
xml.FindElem();
while (xml.FindChildElem("knowledge"))
{
    que=xml.GetChildAttrib("question");
MessageBox(que);
ans=xml.GetChildAttrib("answer");
if (que=="question00"&&ans=="answer00")
{
bfind=true;
break;
} } }
}
这是我的xml文件格式
<?xml version="1.0" encoding="gb2312" standalone="yes" ?>
<!--常用问答对-->
<knowledge question="多少 血压 正常 是 人" answer="收缩压即高压小于140;舒张压即低压小于90" />
<knowledge question="心绞痛 什么 原因 是" answer="劳累、情绪激动、暴饮暴食、受寒等" />
<knowledge question="怎样 预防 高血压" answer="不吸烟、少饮酒;控制饮食、防止肥胖;低盐饮食、多食蔬菜;适度锻炼、睡眠充足;保持情绪稳定、乐观" />
<knowledge question="什么样 高血压 人 易 患" answer="肥胖的人、有血缘关系的亲属有高血压的人、爱吃咸的人、酗酒的人、精神长期紧张的人、老年人、糖尿病人、高血脂的人" />请问怎么可以解决?

解决方案 »

  1.   

    你的xml文件内容没有在同一个节点内 其实你拖拽到ie就能看到错误描述
      

  2.   

    载入失败是因为xml文件格式错误吗?但这种格式是有的啊,而且这个函数中的方法我是在网上找的,正好就是我要处理的这种格式
      

  3.   

    个人认为这个格式不对 这样就对了:<?xml version="1.0" encoding="gb2312" standalone="yes" ?>
    <!--常用问答对-->
    <x>
    <knowledge question="多少 血压 正常 是 人" answer="收缩压即高压小于140;舒张压即低压小于90" />
    <knowledge question="心绞痛 什么 原因 是" answer="劳累、情绪激动、暴饮暴食、受寒等" />
    <knowledge question="怎样 预防 高血压" answer="不吸烟、少饮酒;控制饮食、防止肥胖;低盐饮食、多食蔬菜;适度锻炼、睡眠充足;保持情绪稳定、乐观" />
    <knowledge question="什么样 高血压 人 易 患" answer="肥胖的人、有血缘关系的亲属有高血压的人、爱吃咸的人、酗酒的人、精神长期紧张的人、老年人、糖尿病人、高血脂的人" />
    </x>
      

  4.   

    你的xml格式不对, 当然是false了。 你的xml的多个根节点。你必须把这些放到一个根节点里。