今日最大怪事,无法载入xml文件

2066 2003-12-16 05:58:23
我用xml文件来代替ini文件。在csdn查了许多资料,以下是代码片断
Imports System.Net
Imports System.IO
Imports mshtml
Imports System.Xml



Dim xmlInfo As New XmlDocument
Dim mAppPath As Object = Application.StartupPath
If Strings.Right(mAppPath, 1) <> "\" Then
mAppPath = mAppPath & "\"
End If
'MsgBox(mAppPath)
xmlInfo.Load(mAppPath & "info.xml")
Dim node As XmlNode = xmlInfo.DocumentElement.SelectSingleNode("netsh")
Dim name As String = node.SelectNodes("name").Item(0).Value
MsgBox(name)

运行到xmlInfo.Load(mAppPath & "info.xml")
程序提示:
未处理的“System.Xml.XmlException”类型的异常出现在 microsoft.visualbasic.dll 中。

其他信息: 系统错误。
我已经添加引用microsoft xml v5.0
info.xml在bin目录下。
我看csdn的例子,我的操作并没有什么问题,为什么会这样?
...全文
87 13 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
NoReady 2003-12-17
试试:
dim str as string
str=xmlInfo.Item("netsh").Item("name").InnerText
  • 打赏
  • 举报
回复
Rotaxe 2003-12-17
对不起,没看清楚。
第一,GetElementsByTagName是xmldocument的成员。
SelectNodes是用XPath方法来查寻,用法在线帮助写的很清楚
第二,value属性对Element类型的节点是没有用的,要用InnerText
  • 打赏
  • 举报
回复
airon2002 2003-12-17
Dim mAppPath As Object = Application.StartupPath

Object ==>> string

Dim mAppPath As string = Application.StartupPath
  • 打赏
  • 举报
回复
Montaque 2003-12-17
看是不是编码的问题.
  • 打赏
  • 举报
回复
2066 2003-12-17
Dim name As String = node.GetElementsByTagName("name").Item(0).Value
提示:GetElementsByTagName不是system.Xml.XmlNode的成员
改成
Dim name As String = xmlInfo.GetElementsByTagName("name").Item(0).Value
xmlinfo是xml文件名,结果是空值,为什么?

  • 打赏
  • 举报
回复
2066 2003-12-17
to:Montaque(侯永锋 [MVP]) 不是编码的问题
to:airon2002(等我有了钱,豆浆买两碗,喝一碗,倒一碗)
Dim mAppPath As string = Application.StartupPath
和Dim mAppPath As Object = Application.StartupPath看不出有差别
to:NoReady(亦正亦偏)
dim str as string
str=xmlInfo.Item("netsh").Item("name").InnerText
可以读出数据。我查csdn上的资料,你的方法是最简便的方法。
  • 打赏
  • 举报
回复
Rotaxe 2003-12-16
Dim name As String = node.GetElementsByTagName("name").Item(0).Value
  • 打赏
  • 举报
回复
2066 2003-12-16
如何改呢
  • 打赏
  • 举报
回复
czy412 2003-12-16
node.SelectNodes吗?????
当然是错误的了!
  • 打赏
  • 举报
回复
2066 2003-12-16
这是我的xml文件全部内容
<?xml version="1.0" encoding="gb2312" ?>
<netsh>
<name>zhengjiang</name>
<password>iloveameri</password>
<subject>你好</subject>
<body>this is body</body>
<regid>00227</regid>
<username>verygood</username>
<cardnumber>33011119110101</cardnumber>
<homephone>3888888</homephone>
</netsh>
  • 打赏
  • 举报
回复
2066 2003-12-16
thanks a lot for Rotaxe(程序员)
我原先建了个txt文件,再把后缀改成xml,经验证,果然是不合法xml文档。< >都替换掉才不显示错误。
程序运行到
As String = node.SelectNodes("name").Item(0).Value
提示:
未处理的“System.NullReferenceException”类型的异常出现在 webbrowser2.exe 中。

其他信息: 未将对象引用设置到对象的实例。
这是为什么,该如何解决。

  • 打赏
  • 举报
回复
youngby 2003-12-16
haha

在这里见到 Rotaxe(程序员)了

呵呵。。。。
  • 打赏
  • 举报
回复
Rotaxe 2003-12-16
你的info.xml不是合法的xml文档,在Visual studio 中打开info.xml,然后
XML->验证XML数据
  • 打赏
  • 举报
回复
相关推荐
课程设计-基于C++的mfc框架的学生社团管理系统(源码+数据库+报告).zip 本系统实现的功能 本程序为单文档应用程序主程序界面能实现查询社团信息、修改社团信息、删除社团信息、添加社团信息、入团、退团、用户登录、和用户管理功能其中修改社团信息、删除社团信息、添加社团信息和用户管理需要用户登录后才能使用未登录就点击使用的会会弹出对话框显示您还没有登录点击登录按钮会弹出用户登录对话框输入正确的用户名称和密码若验证成功则会显示登录成功并显示出您用有的权限高级管理员或者是普通管理员高级管理员则可以对社团信息进行修改、删除、添加。点击入团按钮会弹出加入社团对话框在对话框内填上相应的信息后点击确定成功加入后会有相关提示若没有成功则有可能您输入的社团不存在点击退团按钮弹出退出社团对话框输入您要退出的社团名称和学号点击确定如果成功退出会显示成功的标志否则的话就是您没有假如该社团活着您填的信息不完全。在主程序对话框中可以直接在控件内输入要修改的社团信息然后点击修改按钮分别输入控件中的内容然后点击添加按钮若要添加的社团当前没有的话则添加成功否则会失败。登录了以后点击用户管理按钮则会弹出用户管理对话框在该对话框内可以修改用户密码高级管理员还能注册新用户。
发帖
VB
加入

1.6w+

社区成员

VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
申请成为版主
帖子事件
创建了帖子
2003-12-16 05:58
社区公告
暂无公告