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

ydfqing 2007-06-04 03:02:10
<?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 ); //读取表名
}
}
...全文
320 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuxing2006 2007-06-04
  • 打赏
  • 举报
回复
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
}
}
szc21 2007-06-04
  • 打赏
  • 举报
回复
这个该怎么写XML啊? 谢谢大家了~~~~~

------------------------------------------
没明白,能写第一种就能写第二种。我的blog上只有一篇以前写xml留下的资料,可以参考一下
roklba 2007-06-04
  • 打赏
  • 举报
回复
mark一下
xyh2002 2007-06-04
  • 打赏
  • 举报
回复
第一种方法,可以直接使用XmlDocument 等类来读,例如这样
XmlDocument mXml = new XmlDocument();
mXml.Load(文件名);
XmlNode xnode = mXml.Nodes;
然后遍历这些xnode

第二种方法使用xsd生成一个类文件,xsd可以在 \\Microsoft Visual Studio 8\SDK\v2.0\Bin下找到,然后可以使用xml的反序列化来作,这样出来的结果会是对象。
个人比较喜欢第二种方法,不过性能比第一种稍差
ydfqing 2007-06-04
  • 打赏
  • 举报
回复
感谢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啊? 谢谢大家了~~~~~

jiatong1981 2007-06-04
  • 打赏
  • 举报
回复
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 + ",";

}
ydfqing 2007-06-04
  • 打赏
  • 举报
回复
ckpckphaha(赫尔墨斯神杖)

使用XPATH解析整个文档。

.............................................

再能具体点不?
iloveaspx 2007-06-04
  • 打赏
  • 举报
回复
http://www.51aspx.com/S/xml.aspx

看看这上面的示例源码
yangsongshuang 2007-06-04
  • 打赏
  • 举报
回复
xmldoument
jimu8130 2007-06-04
  • 打赏
  • 举报
回复
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

你可以查看下这上面的文章,应该简单的增删查改没什么问题的
ckpckphaha 2007-06-04
  • 打赏
  • 举报
回复
使用XPATH解析整个文档。
ydfqing 2007-06-04
  • 打赏
  • 举报
回复
我用的XmlTextReader,不行么?
ckpckphaha 2007-06-04
  • 打赏
  • 举报
回复
使用DOM解析

xmldoument

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧