2011-12-21 82 views
1

請注意,我對.NET和ASP.NET非常陌生。驗證VB.NET中的XML字符串

我有一個腳本,試圖從URL加載XML文本,我很難找出如何檢查它是否是有效的,規範化的XML。我沒有一個模式,因爲有幾個變量可以改變XML格式,我只想檢查一下,確保所有的開始標籤都被正確關閉,這樣我就可以驗證整個字符串是否正確加載。這是我現在所擁有的。

Dim objResponse As HttpWebResponse 
Dim objRequest As HttpWebRequest 
Dim strXml As String 
Dim newMembers As New DataSet 
Dim xmlReader As StringReader 

'get xml from current file 
objRequest = HttpWebRequest.Create(xmlurl) 
objResponse = objRequest.GetResponse() 

Using sr As New StreamReader(objResponse.GetResponseStream()) 
    strXml = sr.ReadToEnd() 
    sr.Close() 
End Using 

'I would like to add something here to validate strXML 

' create a dataset from the XML file pulled down from the remote server 
newMembers = New DataSet() 
xmlReader = New System.IO.StringReader(strXml) 
newMembers.ReadXml(xmlReader) 

回答

0

您可以使用XmlDocument.Load方法,如果失敗,可以認爲它不是有效的XML。

XmlDocument.Load Method (Stream)

+0

謝謝 - 我只是更增添了幾分代碼,以便人們可以看到它是如何被消耗。 DataSet方法ReadXML應該做同樣的事情嗎? – unclesol 2011-12-21 20:32:14

+0

@unclesol - 我相信如此。如果源是無效的XML,則ReadXml應該失敗。 – zeroef 2011-12-21 20:46:45

1

創建XmlDocument對象,並調用LoadXml方法就可以了。如果標籤構造不正確,則會引發異常。

Dim xDoc As New XmlDocument() 
xDoc.LoadXml(strXml) 
2
dim x = System.Xml.Linq.XDocument.Parse("<xml><valid_tag /></xml>") 

如果您的XML是無效的,則拋出異常。

要不然:

dim x = System.Xml.Linq.XDocument.Load("path_to_xml_file") 

相同的行爲