gpt4 book ai didi

xml - 从 Excel VBA 创建 xml 属性

转载 作者:行者123 更新时间:2023-12-04 20:00:40 27 4
gpt4 key购买 nike

我正在尝试使用 Microsoft XML 6.0 从 Excel VBA 编写一个 xml 文件。
到目前为止,它工作正常,除了一些属性。
这是我的代码的摘录:

Dim block,knoten,subknoten, subknoten2 As MSXML2.IXMLDOMNode
Dim attribut, attribut2 As MSXML2.IXMLDOMAttribute

'...'
Set knoten = block.appendChild(.createNode(NODE_ELEMENT, "name", ""))
Set attribut = .createAttribute("id")
attribut.nodeValue = "Knotentext"
knoten.setAttributeNode attribut ' works fine so far '

Set subknoten = knoten.appendChild(.createNode(NODE_ELEMENT, "unterknoten", ""))
Set subknoten2 = subknoten.appendChild(.createNode(NODE_ELEMENT, "unterknoten2", ""))
subknoten2.nodeTypedValue = "Knotentext"
Set attribut = .createAttribute("id")
attribut.Value ="Attributstext"
subknoten2.setAttributeNode attribut ' this line creates an error, rest is ok
'...'

最后一行导致编译器消息“找不到方法或对象”
这符合输入 subknoten2 时“setAttributeNode”不在选择列表中的事实。
但是打结有什么区别呢?它们都以相同的方式定义和创建。
在监 window 口(Überwachungsfenster)中,我看到以下类型:
结:变体/对象/IXMLDOMElement
subknoten2: IXMLDOMNODE/IXMLDOMElement

有谁知道这里发生了什么以及如何将属性附加到 subknoten2?
谢谢你的时间...

最佳答案

您可以使用以下代码向现有节点添加属性

Dim pairList As IXMLDOMNodeList
Dim pairNode As IXMLDOMNode
Dim objAttr As IXMLDOMAttribute

Set pairList = objDom.selectNodes("/PairList/*")



For Each pairNode In pairList
'--------------------------------------------------
' Setting Target Positions
'-------------------------------------------------
Set objAttr = objDom.createAttribute("TX")
pairNode.Attributes.setNamedItem(objAttr).Text = tPoint.X
Set objAttr = objDom.createAttribute("TY")
pairNode.Attributes.setNamedItem(objAttr).Text = tPoint.Y
Set objAttr = objDom.createAttribute("TZ")
pairNode.Attributes.setNamedItem(objAttr).Text = tPoint.Z


Next pairNode

关于xml - 从 Excel VBA 创建 xml 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5257258/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com