Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XmlDocument.Load使用了错误的重载_Xml_Vb.net - Fatal编程技术网

XmlDocument.Load使用了错误的重载

XmlDocument.Load使用了错误的重载,xml,vb.net,Xml,Vb.net,我从DLL中获得以下XML字符串(不是文件): 我已经试过了,但是我得到了一个错误,一些字符是不正确的 Dim Result as string Dim ID as string Dim sr As New System.IO.StringReader(XMLString) Dim doc As New Xml.XmlDocument doc.Load(sr) Dim reader As New Xml.XmlNodeReader(doc) While reader.Read() Selec

我从DLL中获得以下XML字符串(不是文件):

我已经试过了,但是我得到了一个错误,一些字符是不正确的

Dim Result as string
Dim ID as string
Dim sr As New System.IO.StringReader(XMLString)
Dim doc As New Xml.XmlDocument
doc.Load(sr)
Dim reader As New Xml.XmlNodeReader(doc)
While reader.Read()
  Select Case reader.NodeType
    Case Xml.XmlNodeType.Element
    If reader.Name = "SerRes" Then
      Result = reader.GetAttribute("OverallResult")
      ID = reader.GetAttribute("RequestID")
    End If
  End Select
End While
我在
doc.Load(sr)

mscorlib.dll中发生“System.ArgumentException”类型的未处理异常
其他信息:路径中存在非法字符

看起来VB出于某种原因选择了
.Load(String)
而不是
.Load(Stream)


有人看到问题了吗?

发生的情况是,在不使用编译器的情况下,似乎选择了XmlDocument.Load方法的名称,因此它正在尝试读取文件

启用选项Strict On,以便从流中选择要读取的

(将Option Strict On作为新项目的默认选项是一个好主意-在上有更多相关信息)


顺便说一句,正如用户在其他地方指出的,您可以利用一些漂亮的特性来减少代码量并提高可读性:

Dim X = XElement.Parse(XMLString)
Dim ID$ = X.@RequestID
Dim Result$ = X.@OverallResult


为了避免注释中的信息丢失,用户告诉我们早期的VS2015版本充满了奇怪的bug,所以,如果这就是用来编译代码的原因,这可能就是它出错的原因。

我无法重现错误。请确保您使用的是正确的变量类型,并且Visual Studio选择了加载方法的正确重载。“路径中的非法字符”是使用XmlDocument.Load(文件名)时出现的错误。由于XML是一个字符串,所以可以使用。是的,strict on完成了这项任务。非常感谢安德鲁。@AndrewMorton太完美了!现在这个问题不需要关闭,答案可以被接受,这是一个完全可以找到的有用的问题。你使用的是什么版本的编译器。它是不是碰巧是VS2015早期版本之一?我相信2015系列的最后一个版本是更新3。早期版本充满了奇怪的bug。如果没有上下文,这对社区没有什么价值,因为它无法复制。
Dim Result as string
Dim ID as string
Dim sr As New System.IO.StringReader(XMLString)
Dim doc As New Xml.XmlDocument
doc.Load(sr)
Dim reader As New Xml.XmlNodeReader(doc)
While reader.Read()
  Select Case reader.NodeType
    Case Xml.XmlNodeType.Element
    If reader.Name = "SerRes" Then
      Result = reader.GetAttribute("OverallResult")
      ID = reader.GetAttribute("RequestID")
    End If
  End Select
End While
Dim X = XElement.Parse(XMLString)
Dim ID$ = X.@RequestID
Dim Result$ = X.@OverallResult