我必须在一些旧的VBScript中做一些工作,我需要在一些XML中添加CDATA部分,有人可以告诉我这看起来是否正确,以及稍后如何从CDATA部分提取文本。
Dim xmlobj
Set xmlobj = Server.CreateObject("MSXML2.DOMDocument.6.0")
p_conditon = Server.HtmlEncode(condition)
xmlobj.LoadXML "<CONDITION>" & condition & "</CONDITION>"
Set Condition_Node = xmlobj.SelectSingleNode("/node()")上面是现有的代码,我添加了以下部分
Dim cdata
Set cdata = xmlobj.CreateCDATASection(REPLACE(condition, "&&", "&&"))
Condition_Node.AppendChild(cdata)提取条件的现有代码如下所示,但我需要检查它是否有CDATA部分,如果有,则从中提取文本。
field.SelectSingleNode("CONDITION").text发布于 2017-02-01 20:02:29
为了回答您问题的第一部分,我从here窃取了代码
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对于评论中的第二部分,我附加了:
WScript.Echo oXML.xml
Set nd = oXML.SelectSingleNode("/a/c").firstChild
WScript.Echo nd.nodeType, nd.text, nd.xml
Set nd = oXML.SelectSingleNode("/a/b").firstChild
WScript.Echo nd.nodeType, nd.text, nd.xml输出:
<a><b><></b><c><![CDATA[<>]]></c></a>
4 <> <![CDATA[<>]]>
3 <> <>请参阅docs
...
interface Node {
// NodeType
const unsigned short ELEMENT_NODE = 1;
const unsigned short ATTRIBUTE_NODE = 2;
const unsigned short TEXT_NODE = 3;
const unsigned short CDATA_SECTION_NODE = 4;
const unsigned short ENTITY_REFERENCE_NODE = 5;
... 为了这些数字。
https://stackoverflow.com/questions/41978332
复制相似问题