我绝对不知道什么时候谈到VBScript所以当我在线上发现两个简单的代码片段以将文本文件的全部内容插入到XML文档中时,我感到非常高兴。
除<
已更改为<
且我的<
已更改为>
外,一切正常。
我怎样才能克服这个?
我的代码:
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("C:\test.txt", ForReading)
strText = objTextFile.ReadAll
objTextFile.Close
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.Async = "False"
xmlDoc.Load("C:\Audits.xml")
Set colNodes = xmlDoc.SelectNodes("/TOOLS")
For Each objNode In colNodes
objNode.text = (strText)
Next
xmlDoc.Save "C:\Audits.xml"
答案 0 :(得分:1)
CDATA部分允许&lt;和&gt;:
CDATA部分允许开发人员包含标记字符&lt;,&gt;, 和&amp;在元素内容中,不使用字符或实体 引用。脚本,样式表,程序代码和示例XML代码 经常包含在CDATA部分中。
(Docs)
代码:
Dim oXML : Set oXML = CreateObject("Msxml2.DOMDocument")
Set oXML.documentElement = oXML.createElement("a")
Dim nd
Set nd = oXML.createElement("b")
nd.appendChild oXML.createTextNode("<>")
oXML.documentElement.appendChild nd
Set nd = oXML.createElement("c")
nd.appendChild oXML.createCDATASection("<>")
oXML.documentElement.appendChild nd
输出:
<a><b><></b><c><![CDATA[<>]]></c></a>
答案 1 :(得分:0)
你没有“克服”这一点。必须对<
和>
个字符进行编码,否则解析XML标记(由尖括号划分,即<
和{ {1}}字符)。