当前位置: 代码迷 >> ASP.NET >> 累死了,快来帮帮小M,读取XML有关问题~
  详细解决方案

累死了,快来帮帮小M,读取XML有关问题~

热度:8324   发布时间:2013-02-25 00:00:00.0
累死了,快来帮帮小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
http://www.cnblogs.com/ocean2000/archive/2006/07/20/455514
http://www.cnblogs.com/ocean2000/archive/2006/07/25/459226
http://www.cnblogs.com/ocean2000/archive/2006/08/08/471029

你可以查看下这上面的文章,应该简单的增删查改没什么问题的
------解决方案--------------------------------------------------------
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)
{
  相关解决方案