建了一个xml文档如下:
<?xml version="1.0"?>
<graph>
  <strocount>2</strocount>
  <stroke>
    <point>
      <point.x>259</point.x>
      <point.y>77</point.y>
    </point>
    <point>
      <point.x>260</point.x>
      <point.y>77</point.y>
    </point>
  </stroke>
  <stroke>
    <point>
      <point.x>264</point.x>
      <point.y>72</point.y>
    </point>
    <point>
      <point.x>264</point.x>
      <point.y>73</point.y>
    </point>
  </stroke>
</graph>
我现在想获得节点每个stroke/point节点中的<point.x>,<point.y>中的数值,我采用以下语句:
  XmlNode xn = doc.SelectSingleNode ("/graph/strocount");
      int i = int.Parse(xn.InnerText);
                                  
                for (int  j = 0; j < i; j++)
                {
                    int n = j + 1;
                    XmlNodeList nodelist4 = doc.SelectNodes("graph/stroke[n]/point/point.x");
                    XmlNodeList nodelist5 = doc.SelectNodes("graph/stroke[n]/point/point.y");
却说找不到应用对象的实例,而把graph/stroke[n]/point/point.x中的n换成具体的数值,却可以将值付给XmlNodeList nodelist4 ,  XmlNodeList nodelist5 ,这是为什么?请大家帮帮忙!谢谢!

解决方案 »

  1.   


           
                string nodename =;
                   XmlTextReader xr = new XmlTextReader(文件名);
                  nodename = xr.Name ;
                ArrayList arraylist = new ArrayList();
                while (xw.Read())
                {
                    if (nodename == "point")
                    {
                         arraylist.Add(xr.ReadString());
                    }
                }
                xr = new XmlTextReader(filename);
                XmlDocument xd = new XmlDocument();
                xd.PreserveWhitespace = true;
                xd.Load(xw);
                xd.InnerXml;
                xr.Close();