【发布时间】:2015-09-12 14:44:23
【问题描述】:
我正在尝试解析这个 XML:
<?xml version="1.0" encoding="utf-8" ?>
<products xmlns="http://www.fusepumpaffiliates.co.uk/feed-distribution/etsy/us/">
<product>
<title>Product 1</title>
</product>
<product>
<title>Product 2</title>
</product>
<product>
<title>Product 3</title>
</product>
</products>
下面的代码可以与其他 XML 文件一起使用而没有任何问题,所以我不明白为什么下面的代码不适用于这个特定的 XML 提要。 节点数我都数不过来:
Dim req As HttpWebRequest
Dim Resp As HttpWebResponse
Dim reader As StreamReader
Dim responseString As String = ""
'get the XML
Dim productXML As New XmlDocument
Dim node As XmlNode
Dim root As XmlNode
req = HttpWebRequest.Create(fpm.feedURL)
req.Timeout = 3600000 '3600 seconds
Resp = req.GetResponse()
reader = New StreamReader(Resp.GetResponseStream)
responseString = reader.ReadToEnd()
productXML.LoadXml(responseString)
Dim mgr As XmlNamespaceManager = New XmlNamespaceManager(productXML.NameTable)
mgr.AddNamespace("whatever", productXML.DocumentElement.NamespaceURI)
root = productXML.DocumentElement
nodeList = root.SelectNodes("/products/product")
'nodeList.count = 0 here?!??!
For Each node In nodeList
If node.SelectSingleNode("categories") IsNot Nothing Then
End If
Next node
【问题讨论】:
-
在这些情况下,有一个过程对我来说总是有效的:首先有一个完美工作的简单版本,然后增加它的复杂性/考虑正确的输入。例如:取一个可靠的简单示例代码(MSDN ->msdn.microsoft.com/en-us/library/hcebdtae(v=vs.110).aspx;我认为您使用的是不同的命名空间;但您明白了);编写一个简单的输入文件(几个节点理想地模拟真实输入的结构)并努力解决它,直到确保它完美运行。然后,您可以根据需要扩大规模。
-
谢谢!正是定义的命名空间导致了问题。
-
嗯...实际上是你而不是我。
-
让我走上正轨的要点 :)
标签: asp.net xml vb.net xml-parsing