<Button>
  <Point ID="0">Point.x=206,point.y=209</Point> 
  <Point ID="1">Point.x=317,point.y=196</Point> 
  <Point ID="2">Point.x=384,point.y=147</Point> 
  <Point ID="3">Point.x=436,point.y=195</Point> 
  <Point ID="4">Point.x=379,point.y=248</Point> 
</Button>
比如这个简单的XML文件,我打算把Point的 x,y的值打印到listbox控件里。
 目前我想到的唯一办法是用一个循环,每次按ID这个属性查找这个节点 比如 xmlNode= (MSXML2::IXMLDOMElementPtr)(xmlDoc->selectSingleNode("/Button/Point[@ID='1']")); 查找到ID=1的节点 再打印到listbox里  但是这个语句[@ID=' '] 里面不能放变量 所以无法循环。。有什么办法吗?或者好的方法? 谢谢各位!

解决方案 »

  1.   


    MSXML2::IXMLDOMNodeListPtr points = xmlDoc->selectSingleNode("/Button/Point");
    int n = points->length;
    for (int i=0; i<n; i++)
    {
        MSXML2::IXMLDOMElementPtr xmlNode = (MSXML2::IXMLDOMElementPtr)points->item(i);
    }
      

  2.   

    系统提示points->item(i)处错误, item是points的一个成员变量吧。能这么用吗? 但是我用Getitem程序运行后会崩溃。。
      

  3.   

    俺都用TinyXML的,你用DOM,可以看看这个DOM操作XML
      

  4.   

     目前的情况是
    MSXML2::IXMLDOMNodeListPtr points = xmlDoc->selectSingleNode("/Button/Point");
    int n = points->length;
    for (int i=0; i<n; i++)
    {
      MSXML2::IXMLDOMElementPtr xmlNode = (MSXML2::IXMLDOMElementPtr)points->item[i];
    }
     程序不报错,但是一运行 就会崩溃 什么情况?