<?xml version="1.0" encoding="utf-8"?>
<plugs>
   <plug>
        <describe>文章采集插件</describe>
        <dllfilenamespace="Plug.Articles">c:\Plug.Articles.dll</dllfile>
        <members>
           <class interface="IArticles">Articles</class>
           <class interface="IXxxxx">xxxxx</class>
        </members>
   </plug>
   <plug>
        <describe>xxx插件</describe>
        <dllfilenamespace="Plug.xx">c:\Plug.xx.dll</dllfile>
        <members>
           <class interface="IAbc">abc</class>
           <class interface="IXxxxx">xxxxx</class>
        </members>
   </plug>
</plugs>怎么读写以上xml文件
需要读取出一下信息文章采集插件c:\Plug.Articles.dllArticles,IArticles
xxxxx,IXxxxx谢谢各位帮忙,100分放送

解决方案 »

  1.   

    http://blog.csdn.net/baihe_591/archive/2008/04/08/2259559.aspx
    这篇文章对楼主应该会有帮助...
      

  2.   


    XmlDocument document = new XmlDocument();
                document.Load("你的xml路径");
                string str = document.DocumentElement.SelectSingleNode("/plugs/plug[1]/dllfile").InnerText;
      

  3.   

    第一步 上传文件,最好用FileUpload
    第二步 建立 一个处理上传文件的页面接收 上传的文件
    第三步 创建一个DataSet,DataTable 读取 上传文件
    第四步 在DataSet,DataTable  会有读取好的 xml 文件,节点就是列。
    第二步 -第三步 public void doFormUpload(Guid pID, string gctx)
        {
            System.Collections.Specialized.NameValueCollection formValues = Request.Form;
            System.Web.HttpFileCollection uploadFiles = Request.Files;
                  if (uploadFiles.Count == 0)
            {
                Response.Write("请选择需要上传的文件<br>");
                return;
            }        HttpFileCollection fc = Request.Files;
            for (int i = 0; i < fc.Count; i++)
            {
                if (fc[i].FileName!= ""  && fc[i].FileName.Substring(fc[i].FileName.LastIndexOf('.')) == ".xml")
                {
                    DataSet ds = new DataSet();
                    ds.ReadXml( fc[i].InputStream);
                }
            }
        }
      

  4.   

    <dllfilenamespace="Plug.Articles">c:\Plug.Articles.dll </dllfile> 
    ==
    <dllfile namespace="Plug.Articles">c:\Plug.Articles.dll </dllfile> 否则不合法
      

  5.   

    先给个部分的XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load("test.xml");XmlNodeList nodeList = xmlDoc.SelectSingleNode("plugs//plug").ChildNodes;//遍历所有子节点
    foreach (XmlNode xn in nodeList)
    {
        //将子节点类型转换为XmlElement类型
        XmlElement xe = (XmlElement)xn;
        if (xe.Name == "describe")
        {
            MessageBox.Show(xe.InnerText);
        }
    }有事忙,回来再说..
      

  6.   

    <?xml version="1.0" encoding="gb2312"?> 
    <plugs> 
      <plug> 
            <describe>文章采集插件 </describe> 
            <dllfile namespace="Plug.Articles">c:\Plug.Articles.dll </dllfile> 
            <members> 
              <class interface="IArticles">Articles </class> 
              <class interface="IXxxxx">xxxxx </class> 
            </members> 
      </plug> 
      <plug> 
            <describe>xxx插件 </describe> 
            <dllfile namespace="Plug.xx">c:\Plug.xx.dll </dllfile> 
            <members> 
              <class interface="IAbc">abc </class> 
              <class interface="IXxxxx">xxxxx </class> 
            </members> 
      </plug> 
    </plugs> XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load("test.xml");XmlNodeList nodeList = xmlDoc.SelectSingleNode("plugs//plug").ChildNodes;//遍历所有子节点
    foreach (XmlNode xn in nodeList)
    {
        //将子节点类型转换为XmlElement类型
        XmlElement xe = xn as XmlElement;
        if (xe.Name == "describe")
        {
            MessageBox.Show(xe.InnerText);
            XmlElement xe1 = xn.NextSibling as XmlElement;
            if (xe1.Name == "dllfile")
            {
                MessageBox.Show(xe1.InnerText);
            }        XmlElement xe2 = xe1.NextSibling as XmlElement;
            {
                if (xe2.Name == "members")
                {
                    foreach (XmlNode node in xe2.ChildNodes)
                    {
                        if (node.NodeType == XmlNodeType.Element && node.Name == "class")
                        {   
                            MessageBox.Show((node as XmlElement).InnerText);
                            MessageBox.Show((node as XmlElement).GetAttribute("interface"));
                        }
                    }
                }
            }
        }
    }