<Attributes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">  
<TypeFileAttributes>
    <TypeFileAttribute>
      <TypeFilename>tehDoc</TypeFilename>
      <ShareAttributes>
        <ShareAttribute>
          <Attr_name>tech_ecs</Attr_name>
        </ShareAttribute>
        <ShareAttribute>
          <Attr_name>tech_wbs</Attr_name>
        </ShareAttribute>
      </ShareAttributes>
    </TypeFileAttribute>
  </TypeFileAttributes>
</Attributes>

解决方案 »

  1. 这样Attribute["Attr"]就不是空了 <ShareAttribute Attr="123">
      <Attr_name>tech_ecs</Attr_name>
    </ShareAttribute如果你要取 <Attr_name/> 里的值XmlNodeList nls = xeShareAttribute.ChildNodes;
    foreach (XmlNode xn1 in nls)
    {
        XmlElement xe = (XmlElement)xn1;
        if (xe.Name == "Attr_name")
        {
            nodeValue = xe.InnerText;
    return nodeValue;
        }
    }
      


  2. public class Attributes
    {
        public List<TypeFileAttribute> TypeFileAttributes { get; set; }
    }public class TypeFileAttribute
    {
        public string TypeFilename { get; set; }
        public List<ShareAttribute> ShareAttributes { get; set; }
    }public class ShareAttribute
    {
        public string Attr_name { get; set; }
    }
    对应的类如上。
      

  3.  public Attributes Deserialize(String filePath)
            {
                System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(Attributes));
                Stream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
                Attributes Attributes = (Attributes)xs.Deserialize(stream);
                stream.Close();
                return Attributes;
            }
    我是用的序列号,两层没事三层就不出来了
      

类似问题 »