【问题标题】:Append a CDATA section附加一个 CDATA 部分
【发布时间】:2017-02-01 20:30:25
【问题描述】:

必须在一些旧的 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, "&amp;&amp;", "&&"))
Condition_Node.AppendChild(cdata)

提取 CONDITION 的现有代码是这样的,但我需要检查它是否有 CDATA 部分,如果有,则从中提取文本。

field.SelectSingleNode("CONDITION").text

【问题讨论】:

  • 那么,您尝试过什么?什么没有按预期工作?
  • 我正在尝试追加,但我不知道以后如何检索它,测试很痛苦,因为这只是达到这一点的一系列步骤的一部分代码,所以很啰嗦,希望有人能帮忙

标签: xml vbscript


【解决方案1】:

为了回答你问题的第一部分,我从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>&lt;&gt;</b><c><![CDATA[<>]]></c></a>

4 <> <![CDATA[<>]]>
3 <> &lt;&gt;

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;
... 

为了数字。

【讨论】:

  • 这对于桌面来说似乎很好,不幸的是我需要在 iPad 应用程序上测试它,它似乎忽略了 CDATA,我在某处读到了 PCDATA,但我不知道如何添加到 XML
猜你喜欢
  • 1970-01-01
  • 2013-11-16
  • 1970-01-01
  • 2017-07-18
  • 2014-12-24
  • 2011-08-11
  • 1970-01-01
  • 2021-03-06
  • 1970-01-01
相关资源
最近更新 更多