今日最大怪事,无法载入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的例子,我的操作并没有什么问题,为什么会这样?
...全文
110 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
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数据

16,549

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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