任何人都可以帮忙吗?
我正在尝试将 excel 数据转换为 xml 文件 uisng vba。 我的 xml 文件看起来像这样,
<product>
<info><i>Samsung</i></info>
</product>
我希望 html 标签不会 parsed.so 尝试在 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 文件看起来像这样,并且在记事本中查看视图源代码时,它应该
将"<"显示为"<",而不是"与号和 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
这个例子有点多余。它将数据设置两次。初始化器中的第一个:
Set cdata = objDom.createCDATASection("info")
这实际上是创建 cdata 对象并同时将"info"写入数据。更忠实于原始海报的问题将是:
Set cdata = objDom.createCDATASection("<i>Samsung</i>")
此外,如果这样更方便,也可以使用对象的数据属性:
cdata.Data = "<i>Samsung</i>"
两者都不正确,但没有必要对数据属性进行两次设置。