由於G. Stoynev已經懷疑你得到的錯誤,因爲你把另一開口<xml>
標籤在字符串的結尾:
<xml>
<username>jbrown</username>
<date>01/13/2014 15:42:23</date>
<error>Your error message.</error>
<xml>
它應該是結束標籤(</xml>
):
<xml>
<username>jbrown</username>
<date>01/13/2014 15:42:23</date>
<error>Your error message.</error>
</xml>
您可以通過檢查ParseError
屬性來檢測這樣的錯誤:
If xmlDoc.ParseError <> 0 Then
MsgBox xmlDoc.ParseError.Reason
End If
這會已經給你以下信息:
下面的代碼沒有被關閉:XML,XML。
我會不建議簡單地寫一個XML字符串到一個文件中,但是,因爲直到有人嘗試與文件工作方式無效的XML將不被發現。不要通過字符串連接來構造XML,而是使用適當的方法。
Set rootNode = xmlDoc.CreateElement("xml")
Set userNode = xmlDoc.CreateElement("username")
userNode.text = currentUser
rootNode.AppendChild userNode
Set dateNode = xmlDoc.CreateElement("date")
dateNode.text = Now
rootNode.AppendChild dateNode
Set errorNode = xmlDoc.CreateElement("error")
errorNode.text = error
rootNode.AppendChild errorNode
xmlDoc.Save Server.MapPath("xml/Error.xml")
你可以簡化一點通過在功能包的子節點創建:
Function NewNode(name, value)
Set node = xmlDoc.CreateElement(name)
node.text = value
Set NewNode = node
End Function
Set rootNode = xmlDoc.CreateElement("xml")
rootNode.AppendChild NewNode("user", currentUser)
rootNode.AppendChild NewNode("date", Now)
rootNode.AppendChild NewNode("error", error)
xmlDoc.Save Server.MapPath("xml/Error.xml")
在不同的音符我想建議其他兩處修改:
Microsoft.XMLDOM
已過時。改爲使用Msxml2.DOMDocument.6.0
。
- 刪除多餘的括號。與其他腳本語言不同,VBScript並不總是需要將參數列表放在括號內。閱讀this article,瞭解VBScript中許多不同含義的括號(以及可創建的有趣情況)。
我想清楚我的問題是什麼。是的,這是關閉xml標籤,也是因爲我在'error'末尾附加了'
',所以'
'扔掉了一切。謝謝您的幫助! –