VBA-覆盖MSXML2.DOMDocument的XML属性

时间:2019-03-07 07:38:32

标签: xml vba

我有以下子例程,我想在其中遍历XML文档并覆盖特定的节点。 Excel中有一个Range,我已经按照我的需要完全构造了xml字符串。是否有一种简单的方法可以设置xml属性,就像我可以覆盖text属性一样?我试图走MSXML路线以使其更容易遍历dom,但是在这种情况下,除非有人知道一种简单的方法,否则逐行遍历文本文件可能会更容易。我意识到我可以遍历子节点并分别设置<V>标签,但这还有其他挑战,似乎值得付出更多的努力。

Sub TestXML()
Dim path As String: path = Range("FilePath")
Dim XDoc As Object, root As Object

Set XDoc = CreateObject("MSXML2.DOMDocument")
XDoc.async = False: XDoc.validateOnParse = False
XDoc.Load (path)

Dim Nodes As Variant: Set Nodes = XDoc.SelectNodes("//P")
Dim NodeLength As Integer: NodeLength = Nodes.Length

For Each listnode In Nodes
  //This works but does not format correctly
  listnode.text = "<P><D>Bob</D><V>Lob</V><V>law</V></P>"
  //This throws a Run-time error 450 wrong number of arguments or invalid property assignment
  listnode.xml = "<P><D>Bob</D><V>Lob</V><V>law</V></P>"
Next listnode

XDoc.Save Range("FilePath")
Set XDoc = Nothing
End Sub

0 个答案:

没有答案