首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2012-01-23 
累死了,快来帮帮小M,读取XML问题~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~?xmlversion 1.0 encoding gb

累死了,快来帮帮小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)
{


svla1 += xno.InnerText + ", ";

}
[解决办法]
第一种方法,可以直接使用XmlDocument 等类来读,例如这样
XmlDocument mXml = new XmlDocument();
mXml.Load(文件名);
XmlNode xnode = mXml.Nodes;
然后遍历这些xnode

第二种方法使用xsd生成一个类文件,xsd可以在 \\Microsoft Visual Studio 8\SDK\v2.0\Bin下找到,然后可以使用xml的反序列化来作,这样出来的结果会是对象。
个人比较喜欢第二种方法,不过性能比第一种稍差

[解决办法]
这个该怎么写XML啊? 谢谢大家了~~~~~

------------------------------------------
没明白,能写第一种就能写第二种。我的blog上只有一篇以前写xml留下的资料,可以参考一下
[解决办法]
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
}
}

热点排行