有XML文件,
<A>
  <b>
  <name>1111</name>
  <key>2222</Key>
  <name>3333</name>
  <value>4</value>
 </b>
  <b>
   <name>5</name>
  <key>6</Key>
  <name>7</name>
  <value>8</value>
 </b>
</A>
怎么设计一个类读取这个文件.
最后的结果是比如我想读取 值3333 用read(3)就可以把值给读取出来

解决方案 »

  1.   

    不可能实现得了,用name去取KEY还有可能
      

  2.   

    做有一个数组
    String[] Str = new String[8]{...}

    public string read(int a)
    {
      return Str[a];
    }
      

  3.   

    <name>  
    <key>  
    <name>
    <value>
    ...这些ASP 的语法不懂所以上面的只能提供一个参考
      

  4.   

    这是xml代码吗,是的话就用dataset.ReadXml()方法来实现
      

  5.   

    读出xml到类或dataset里,再通过LINQ查询。
      

  6.   


    class ReadXml
    {
        XmlDocument xd; XmlNode root;
        int current = 0;    public ReadXml(string path)
        {
            xd = new XmlDocument(); xd.Load(path);
            root = xd.DocumentElement;
        }    public String Read(int index)   //按序号读当前节点的子节点
        {
            return root.ChildNodes[current].InnerText;
        }    public int Current  //设置或读取当前操作根节点的第几个子节点
        {
            get { return current; }
            set { current = value; }
        }
    }
      

  7.   

    ReadXml(string path)
    path为xml文件的路径
      

  8.   


     public static string read(int i)
            {
                string name = "";
                XmlDocument xmldoc = new XmlDocument();
                xmldoc.Load("read.xml");
                XmlNode node = xmldoc.SelectSingleNode("A");
                foreach (XmlNode xn in node.ChildNodes)
                {
                    name += xn.ChildNodes[i-1].InnerText.ToString()+"|";
                }
                return name;
            }调用read(3)
    返回的结果是   3333|7|
    然后自己利用split函数进行切割
      

  9.   


    这样可以吗?你读取出来应该是一个定值吧..
    再说了return root.ChildNodes[index].InnerText;这样的话也是不行的..
      

  10.   


    这样read(int i )灵活性不够吧..假如我文件如下<A> 
      <b> 
      <name>1111 </name> 
      <key>2222 </Key> 
      <name>3333 </name> 
      <value>4 </value> 
    </b> 
      <b> 
      <name>5 </name> 
      <key>6 </Key> 
      <name>7 </name> 
      <value>8 </value> 
    </b> 
     <b> 
      <name>1111 </name> 
      <key>2222 </Key> 
      <name>3333 </name> 
      <value>4 </value> 
    </b> 
      <b> 
      <name>5 </name> 
      <key>6 </Key> 
      <name>7777</name> 
      <value>8 </value> 
    </b> </A> 要取7777也是取得不太正确
      

  11.   

    你要读第几子节点,就设一下Current属性,要不怎么知道你读哪个?