我打算做一个自定义格式的xml配置文件,然后在程序中读取这个xml配置文件,这个配置文件有一定的格式,就像NHibernate中的NHibernate.Cfg.Xml文件类似。那么就要解决:1、格式验证,2、读取节点的属性和值。在C#中如何做到呢?是用xml schema吗?是用xsd文件吗?还是自己写解释器?对xml不是很了解。请指教!

解决方案 »

  1.   

    .net 对解析xml是很强的。看看 system.xml那个类
      

  2.   

    在MSDN中看看,XmlDocument,XmlNode,XmlAttribute, 和看看XPath就知道了,很简单的。
      

  3.   


    using System;
    using System.IO;
    using System.Xml;public class Sample {  public static void Main() {    XmlDocument doc = new XmlDocument();
        doc.LoadXml("<book xmlns:bk='urn:samples' bk:ISBN='1-861001-57-5'>" +
                    "<title>Pride And Prejudice</title>" +
                    "</book>");    XmlNode root = doc.FirstChild;    //Create a new attribute.
        string ns = root.GetNamespaceOfPrefix("bk");
        XmlNode attr = doc.CreateNode(XmlNodeType.Attribute, "genre", ns);
        attr.Value = "novel";    //Add the attribute to the document.
        root.Attributes.SetNamedItem(attr);    Console.WriteLine("Display the modified XML...");
        doc.Save(Console.Out);  }
    }
      

  4.   

    我不是说xml这个namespace如何用,我只是不知道如何才能够快速准确的解析xml文件中的语义。比如说:
    <sessions default="session1">
       <session name="session1" value="" />
       <session name="session2" value="" />
    </sessions>
    类似这样的部分,其中sessions的default属性值必须是下面所有session中某个session的name,难不成除了使用XmlNode之类的一步步读取xml文件,一步步解析,然后一步步判断外,没有其它办法了吗?
    如果可以使用xml validate或者xsd之类的话,如何使用呢?