在Word文档中迭代CustomXmlDocument

本文介绍了一个使用VBAForm在Word文档中操作CustomXmlDocument的例子,通过编写代码实现对XML元素的遍历和展示,包括添加、删除节点以及展示XML文档的层次结构。

以下代码是一个VBA Form中的,用来迭代CustomXmlDocument。

Private Sub TreeView1_BeforeLabelEdit(Cancel As Integer)

End Sub

Private Sub UserForm_Activate()
    Dim oCustXMLPart As CustomXMLPart
    Dim oNode As CustomXMLNode
    Dim oNodeChild As CustomXMLNode
    Dim oNodeChildChild As CustomXMLNode
    Dim i As Long
    Dim tRoot As Node
    
    On Error Resume Next
    ActiveDocument.CustomXMLParts(4).Delete
    On Error GoTo 0
    Set oCustXMLPart = ActiveDocument.CustomXMLParts.Add
    oCustXMLPart.LoadXML ("<DocElement><Name>Joe</Name><Age>41</Age><Multi><Item1>A</Item1><Item2>B</Item2></Multi></DocElement>")
    Set oNode = oCustXMLPart.DocumentElement
    Set tRoot = TreeView1.Nodes.Add
    tRoot.Text = "DocElement"
    tRoot.Key = "DocElement"
    Iterator oNode, tRoot
End Sub

Sub Iterator(ByRef Element As CustomXMLNode, ByRef tNode As Node)
    Dim Childe As CustomXMLNode
    Dim subNode As Node
    For Each Childe In Element.ChildNodes
        If Childe.NodeType = msoCustomXMLNodeText Then
            Set subNode = TreeView1.Nodes.Add(tNode.Key, tvwChild, Childe.XPath, Childe.Text)
        ElseIf Childe.NodeType = msoCustomXMLNodeElement Then
            Set subNode = TreeView1.Nodes.Add(tNode.Key, tvwChild, Childe.XPath, Childe.BaseName)
            If Childe.HasChildNodes Then
                Iterator Childe, subNode
            End If
        End If
    Next
End Sub


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值