如何在Excel vba中创建CDATA标签?

时间:2012-09-17 06:38:47

标签: xml excel vba xmldocument cdata

任何人都可以帮忙。

我正在尝试将excel数据转换为xml文件uisng vba。   我的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文件看起来像这样,当在记事本中查看viewsource时,它应该是 显示'&lt;'作为'&lt;'但不是'ampersand lt;'

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

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

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

但cdata标签没有出现。不知道原因。当在notepad'&lt;'中查看xml文件的视图源时符号显示为&符号;

任何人都可以解决这个问题吗?

提前致谢

1 个答案:

答案 0 :(得分:3)

试试这个

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