3

任何人都可以请帮忙。

我正在尝试将 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 文件看起来像这样,当在记事本中查看视图源时,它应该
显示 '<' 为 '<' 但不是 'ampersand lt;'

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

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

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

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

谁能解决这个问题?

提前致谢

4

1 回答 1

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
于 2012-09-17T07:06:43.240 回答