简体   繁体   English

如何使用Excel VBA 2007在XML中添加图像标签

[英]How to add image tag in xml using excel vba 2007

I am generating xml using excel 2007 vba. 我正在使用excel 2007 vba生成xml。 After executing macro, I am getting this output 执行宏后,我得到此输出 在此处输入图片说明

but I need output like 但我需要像

在此处输入图片说明

I dont want &lt and &gt instead of < and > tags. 我不希望&lt和&gt而不是<和>标签。 The macro that I am using is 我正在使用的宏是

enter code here

Dim xmlDoc As New MSXML2.DOMDocument30
Dim objNode As MSXML2.IXMLDOMNode
Dim personNode As MSXML2.IXMLDOMNode
Dim imagesNode As MSXML2.IXMLDOMNode
Set objNode = xmlDoc.createNode(NODE_PROCESSING_INSTRUCTION, "xml", "")
xmlDoc.appendChild objNode
Set objNode = xmlDoc.createNode(NODE_ELEMENT, "root", "")
Set personNode = xmlDoc.createNode(NODE_ELEMENT, "person", "")
objNode.appendChild personNode
Set imagesNode = xmlDoc.createNode(NODE_ELEMENT, "images", "")
personNode.appendChild imagesNode
imagesNode.Text = "<image href=" & Chr(34) & "file:///Users/d.jahr/Desktop/XML           Booklet/Bilder/pic1.jpg" & Chr(34) & "/>"
xmlDoc.appendChild objNode
Set objNode = Nothing
MsgBox xmlDoc.XML
xmlDoc.Save ActiveWorkbook.Path & "\" & "result.xml"

End Sub 结束子

Please help me. 请帮我。

Thanks 谢谢

Rather than set the text of the images collection, consider appending an image child node and setting the href attribute of it: 与其设置images集合的文本,不如考虑附加image子节点并设置其href属性:

Sub test()
    Dim xmlDoc As New MSXML2.DOMDocument30
    Dim objNode As MSXML2.IXMLDOMNode
    Dim personNode As MSXML2.IXMLDOMNode
    Dim imagesNode As MSXML2.IXMLDOMNode

    Dim image1Node As MSXML2.IXMLDOMNode
    Dim namedItem As Object

    Set objNode = xmlDoc.createNode(NODE_PROCESSING_INSTRUCTION, "xml", "")
    xmlDoc.appendChild objNode
    Set objNode = xmlDoc.createNode(NODE_ELEMENT, "root", "")
    Set personNode = xmlDoc.createNode(NODE_ELEMENT, "person", "")
    objNode.appendChild personNode
    Set imagesNode = xmlDoc.createNode(NODE_ELEMENT, "images", "")
    personNode.appendChild imagesNode

    Set image1Node = xmlDoc.createNode(NODE_ELEMENT, "image", "")
    imagesNode.appendChild image1Node
    Set namedItem = xmlDoc.createAttribute("href")
    namedItem.Value = "file:///Users/d.jahr/Desktop/XMLBooklet/Bilder/pic1.jpg"
    image1Node.Attributes.setNamedItem namedItem

    xmlDoc.appendChild objNode
    Debug.Print xmlDoc.XML
End Sub

Output: 输出:

<?xml version="1.0"?>
<root>
   <person>
      <images>
         <image href="file:///Users/d.jahr/Desktop/XMLBooklet/Bilder/pic1.jpg"/> 
      </images>
   </person>
</root>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM