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

标签 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 文件看起来像这样,当在记事本中查看 View 源时它应该
将“<”显示为“<”但不是“& 符号 lt;”

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

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

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

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

谁能解决这个问题?

提前致谢

最佳答案

试试这个

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

关于xml - 如何在 Excel vba 中创建 CDATA 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12454211/

相关文章:

vba - Excel VBA 过滤和复制粘贴数据

Python,批量将度分秒转换为具有数千条记录的.csv中的十进制度

xml - 检查 XML NODE 是否为 null

xml - 解析XML Filebeat> Logstash> Elasticsearch

android - 指定 imageView 调整大小为屏幕的百分比

excel - 确定 Excel 单元格是否脏?

excel - VBA Excel 将文件导出为 .csv,并将数据保留在正确的列中

excel - 必须使用 VBA 在 Excel2010 中复制单元格格式

excel - 使用 VBA 将 .xls 批量转换为 .xlsx,无需打开工作簿

xml - Ansible yaml 到 xml