<?xml version="1.0" encoding="gb2312" ?>
<Topic>
  <database>
     <aa.mdb>
        <table>报告表</table>
        <table>储量表</table>
        <table>矿山表</table>
     </aa.mdb>
    <bb.mdb>
        <table>矿山表</table>
        <table>压覆表</table>
        <table>地热表</table>
    </bb.mdb>
     .....
     .....
  </database>
</Topic>如上,是我自己建的一个XML,分别对应数据库里面相应的表,比如,aa.mdb库里有<报告表><储量表><矿山表>,是这样的结构现在我想读取每个数据库和表,该怎么做啊,我写的程序,不太对,不是把数据库名全取出来就是把表名全取出来了,该怎么改呢,麻烦各位帮看下~~~XmlTextReader reader = new XmlTextReader( Server.MapPath("db.xml") );  ArrayList NodeValues = new ArrayList();  while( reader.Read() ) 
      {         if( reader.NodeType == XmlNodeType.Element && reader.Name == "aa.mdb" )
{
  reader.Read();

  string dbname = reader.Value ; //读取数据库名称         if( reader.NodeType == XmlNodeType.Element && reader.Name == "table" )
{
    reader.Read();             NodeValues.Add( reader.Value );  //读取表名
}
}

解决方案 »

  1.   

    http://www.cnblogs.com/ocean2000/archive/2006/07/20/455504.html
    http://www.cnblogs.com/ocean2000/archive/2006/07/20/455514.html
    http://www.cnblogs.com/ocean2000/archive/2006/07/25/459226.html
    http://www.cnblogs.com/ocean2000/archive/2006/08/08/471029.html你可以查看下这上面的文章,应该简单的增删查改没什么问题的
      

  2.   

    http://www.51aspx.com/S/xml.aspx看看这上面的示例源码
      

  3.   

    ckpckphaha(赫尔墨斯神杖)
     
       使用XPATH解析整个文档。
      
     .............................................再能具体点不?
      

  4.   

    string svla1 = string.Empty;
    XmlDocument mXml = new XmlDocument();
    mXml.Load(this._FilePath);                   
    XmlNode xnode = mXml.SelectSingleNode("//aa.mdb");
    foreach (XmlNode xno in xnode.ChildNodes)
    {
             svla1 += xno.InnerText + ",";
                                
    }
      

  5.   

    感谢jiatong1981(末日之痕)问题解决了~~~还有个问题,就是:
    上面的XML定义的是access数据库和表,我想要再加个一个oracle数据库,表名和字段分别和它对应上,
    比如:      access数据库和表                                    oracle 数据库和表
        
         <aa.mdb>                                             <aaaaa.dmp>
            <table>报告表</table>                                 <table>报告表</table> 
            <table>储量表</table>                                 <table>储量表</table>
            <table>矿山表</table>                                 <table>矿山表1</table>
         </aa.mdb>                                                <table>矿山表2</table>
                                                                  <table>压覆表</table>
                                                                  <table>地热表</table>
         <bb.mdb>                                              </aaaaa.dmp>
            <table>矿山表</table>
            <table>压覆表</table>
            <table>地热表</table>
         </bb.mdb>这个该怎么写XML啊?  谢谢大家了~~~~~
      

  6.   

    第一种方法,可以直接使用XmlDocument 等类来读,例如这样
    XmlDocument mXml = new XmlDocument();
    mXml.Load(文件名);                   
    XmlNode xnode = mXml.Nodes;
    然后遍历这些xnode第二种方法使用xsd生成一个类文件,xsd可以在 \\Microsoft Visual Studio 8\SDK\v2.0\Bin下找到,然后可以使用xml的反序列化来作,这样出来的结果会是对象。
    个人比较喜欢第二种方法,不过性能比第一种稍差
      

  7.   

    这个该怎么写XML啊?  谢谢大家了~~~~~------------------------------------------
    没明白,能写第一种就能写第二种。我的blog上只有一篇以前写xml留下的资料,可以参考一下
      

  8.   

    string svla1 = string.Empty;
    XmlDocument mXml = new XmlDocument();
    mXml.Load(this._FilePath);                   
    XmlNode xnode = mXml.SelectSingleNode("//");
    foreach (XmlNode xno in xnode.ChildNodes)
    {
             foreach(XmlNode xnoChild in xno.ChildNodes){
                 // xnoClild.InnerText
             }                            
    }