如何從按鈕的單擊事件中打開一個URL(這是一個XML頁面),並讀取XML文檔的內容,而無需使用WebBrowser控件進行分析?如何在沒有WebBrowser控件的情況下解析VB.net中的XML文檔?
0
A
回答
1
除了使用XDocument
和LINQ之外,還有其他兩種常見的解決方案。一種是使用XmlDocument
和XPath,另一種是使用XML序列化。舉例來說,如果你有以下的XML文檔:
<?xml version="1.0" encoding="utf-8" ?>
<Books>
<Book Title="Book 1">
<Author>Author 1</Author>
<Chapter>Chapter 1</Chapter>
<Chapter>Chapter 2</Chapter>
</Book>
<Book Title="Book 2">
<Author>Author 1</Author>
<Chapter>Chapter 1</Chapter>
<Chapter>Chapter 2</Chapter>
</Book>
</Books>
然後,你可以用XmlDocument
分析它,並通過它使用XPath這樣的(其中xml
是含有上述XML字符串)搜索:
Dim doc As New XmlDocument()
doc.LoadXml(xml)
Dim authorOfBook1 As String = doc.SelectSingleNode("/Books/Book[@Title = 'Book 1']/Author").InnerText
Dim booksByAuthor1 As XmlNodeList = doc.SelectNodes("/Books/Book[Author = 'Author 1']")
'etc.
或者,您可以使用序列通過加載XML文檔,首先,定義在某些類的文檔結構:
Public Class Books
<XmlElement("Book")> _
Public Items As List(Of Book)
End Class
Public Class Book
<XmlAttribute()> _
Public Title As String
<XmlElement("Author")> _
Public Authors As List(Of String)
<XmlElement("Chapter")> _
Public Chapters As List(Of String)
End Class
然後將XML反序列化爲該類型的對象:
Dim serializer As XmlSerializer = New XmlSerializer(GetType(Books))
Using reader As StringReader = New StringReader(xml)
Dim books As Books = CType(serializer.Deserialize(reader), Books)
'Analyze contents in books object
End Using
0
使用XDocument.Load
將其加載到XDocument
中。
這將爲您解析文檔,以便您可以使用LINQ to XML來查詢它。
1
解析XML,您可以使用LINQtoXML庫(.NET Framework 3.5的起)
例如,如果你有以下格式的XML,
<rss>
<report name="rpt1">
<title>AAA</title>
<image>some1</image>
</report>
<report name="rpt2">
<title>BBB</title>
<image>some3333</image>
</rss>
此代碼將解析它並獲得每個report
項目的title
& url
項目。
Dim path As String = "pathTosomexml.xml"
Dim elm As XElement = XElement.Load(path)
If elm IsNot Nothing Then
For Each page As var In elm.Elements("report")
Dim title = page.Element("title").Value
Dim url = page.Element("image").Value
Next
End If
相關問題
- 1. 如何在沒有WebBrowser控件的情況下「呈現」HTML
- 2. 如何在沒有中間文件存儲的情況下下載XML文檔?
- 3. 如何在沒有模式的情況下解析XML?
- 4. 如何在沒有ID的情況下單擊webbrowser文檔中的按鈕
- 5. 在沒有文件下載對話框的情況下在WebBrowser控件中打開辦公文檔?
- 6. 從webbrowser控件解析XML?
- 7. VB.Net:解析XML文檔
- 8. 如何在沒有UI的情況下創建WebBrowser控件(ActiveX/IWebBrowser2)?
- 9. vb.net - webbrowser獲取xml文檔
- 10. 在不下載DTD的情況下解析XML文檔的標準方法
- 11. 如何在沒有jQuery的情況下解析JSON
- 12. 如何在沒有安裝Office的情況下處理vb.net中的excel文件
- 13. 在不使用tableview控制器的情況下解析本地xml文件
- 14. 如何在沒有文檔的情況下學習CouchDB API?
- 15. 在沒有文本解析的情況下初始化in_addr_t
- 16. 在RVM中沒有任何文檔的情況下安裝rails4
- 17. 如何在沒有文檔的情況下分析和使用Android項目?
- 18. 如何在沒有Spring XML上下文文件的情況下AutoWire對象?
- 19. WebBrowser控件沒有實例化文檔
- 20. 在沒有附加庫的情況下解析標準C/C++中的XML
- 21. 如何在不打開它的情況下解析xlsm文件
- 22. 在沒有任何數組的情況下解析JSON數組
- 23. Java的File.getAbsoluteFile()文檔如何在沒有上下文的情況下引用「this」?
- 24. 如何在不使用XML解碼器的情況下解碼XML文件?
- 25. 如何在沒有URL的情況下隱藏圖像控件?
- 26. 如何解析Blackberry中的xml文檔?
- 27. 解析XML文檔中的CSV文件
- 28. 如何解析XML文檔?
- 29. 如何解析XML文檔
- 30. 解析XML文件VB.NET
請問您可以稍微詳細一點嗎?我無法理解您的問題 – Shyju 2012-08-10 17:59:49
您的問題標題包含不必要的細節。你真的認爲,根據你處理的事件或你使用的是哪種語言,答案會有所不同。 – 2012-08-10 18:01:03