日期:2014-05-18  浏览次数:20413 次

累死了,快来帮帮小M,读取XML问题~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<?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   );     //读取表名
}
}

------解决方案--------------------
使用DOM解析

xmldoument
------解决方案--------------------
使用XPATH解析整个文档。
------解决方案--------------------
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

你可以查看下这上面的文章,应该简单的增删查改没什么问题的
------解决方案--------------------
xmldoument
------解决方案--------------------
http://www.51aspx.com/S/xml.aspx

看看这上面的示例源码
------解决方案--------------------
string svla1 = string.Empty;
XmlDocument mXml = new XmlDocument();
mXml.Load(this._FilePath);
XmlNode xnode = mXml.SelectSingleNode( "//aa.mdb ");
foreach (XmlNode xno in xnode.ChildNodes)
{