【问题标题】:How to create CDATA tag in Excel vba?如何在 Excel vba 中创建 CDATA 标签?
【发布时间】:2026-02-20 23:40:02
【问题描述】:

谁能帮忙。

我正在尝试将 excel 数据转换为 uisng vba 的 xml 文件。 我的xml文件是这样的,

 <product>
  <info><i>Samsung</i></info>
 </product>

我希望不解析 html 标签。因此尝试使用 vba 中的 createCDATASection 方法在 vba 中添加 cdata

我添加了这样的vba代码

  Set objDom = New DOMDocument
  Set objXMLRootelement = objDom.createElement("Product")
  Set objXMLelement = objDom.createElement("info")
  objXMLRootelement.appendChild objXMLelement
  cdata=objDom.createCDATASection ("<i>Samsung</i>")
  objXMLelement.text=cdata.text

我希望我的 xml 文件看起来像这样,当在记事本中查看视图源时,它应该
将 '

  <product>
    <info><![CDATA[<i>Samsung</i>]]></info>
  </product>

执行我的代码后显示如下,

  <product>
   <info><i>Samsung</i></info>
  </product>

但是cdata标签没有出现。不知道是什么原因。并且当在记事本中查看xml文件的视图源时,'

谁能解决这个问题?

提前致谢

【问题讨论】:

    标签: xml excel vba xmldocument cdata


    【解决方案1】:

    试试这个

    Sub zx()
        Dim objDom As DOMDocument
        Dim objXMLRootelement As IXMLDOMElement
        Dim objXMLelement As IXMLDOMElement
        Dim cdata As IXMLDOMCDATASection
    
        Set objDom = New DOMDocument
        Set objXMLRootelement = objDom.createElement("Product")
        objDom.appendChild objXMLRootelement
        Set objXMLelement = objDom.createElement("info")
        objXMLRootelement.appendChild objXMLelement
        Set cdata = objDom.createCDATASection("info")
        cdata.Data = "<i>Samsung</i>"
        objXMLelement.appendChild cdata
    
        Debug.Print objDom.XML
    End Sub
    

    【讨论】:

    • 太棒了!知道了!我已经尝试了两天。解决了!非常感谢您的回答
    • 谢谢,乐于助人。顺便说一句,SO协议是接受解决您问题的答案(点击打勾)