Как 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', и поэтому '
' все это отбрасывал. Спасибо за помощь! –