<?xml version="1.0" encoding="utf-8" ?>
<Config>
  <Validates Name="AddOrEditPurOrderForm">
    <Validate ID="providerNo" IsNull="false" ></Validate>
    <Validate ID="stockMainNO" IsNull="false" ></Validate>
  </Validates>
  <Validates Name="test">
    <Validate ID="model" Name ="类型" IsNull="false" Exp="^[a-z0-9A-Z]+?$" Msg="类型不能为中文"></Validate>
    <Validate ID="qauntity" Name ="数量" IsNull="false" Exp="^[0-9\\d]+?$" Msg="数量必须是数字"></Validate>
    <Validate ID="price" Name ="单价" IsNull="true" ></Validate> 
   </Validates>
</Config>我现在要做一个功能就是根据指定的参数获取某个节点下面的所有属性
例如 参数为test 就要获取 test 这个节点下面的所有属性 然后做验证进行判断.. 例如取出 
test 节点下的 ID是 Model  的 Name  InNull Exp Msg 这些属性,
请问我要怎么做呀,读取XML .

解决方案 »

  1.   

    XPath
    //Validates[@Name="test"]/Validate[@ID="model"]/@IsNull 是用来取Name属性等于"test"的Validates节点下ID="model"的Validate节点的IsNull属性的。其他类似。
      

  2.   

    能不能具体点呀有点抽象不知道代码该怎么写,我不是通过JS读取哦是 .CS后台的
      

  3.   

    假设你的文档叫aa.xmlXmlDocument doc = new XmlDocument();
    doc.Load("aa.xml");
    XmlNode e = doc.SelectSingleNode(@"//Validates[@Name='test']");//查询name属性为test的validates的节点
    foreach (XmlNode n in e.ChildNodes)

        //你要判断的代码
    }
      

  4.   


    foreach (XmlNode element in xmlEntity.SelectNodes("/" + nodeName))
                {
                    foreach (XmlNode ChildNode in element.ChildNodes)
                    {
                        Console.WriteLine(ChildNode.Name + "    " + ChildNode.InnerText);
                        try
                        {
                            Console.WriteLine(ChildNode.Attributes["name"].Value);//属性的值
                        }
                        catch
                        { }
                    }
                }