我需要使用新值更新“简单”XML 文件并使用新名称保存。对于测试,我只尝试更新一个值。但是使用下面的代码我得到一个错误:
运行时错误“91”:未设置对象变量或块变量
VBA:
Sub XMLTest()
Dim myVar As String, pathToXML As String
Dim xmlDoc As Object, xmlRoot As Object
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
pathToXML = "C:\Users\Path_to_XML\PJMeasurements.xml" '<--- Update path
Call xmlDoc.Load(pathToXML)
Set xmlRoot = xmlDoc.getElementsByTagName("ns0:MeasurementsSO").Item(0) '<--- Is this correct?
myVar = "9999-9999999" '<--- Update value
xmlRoot.SelectSingleNode("SalesOrderNo").Text = myVar
Call xmlDoc.Save(pathToXML)
End Sub
这是 XML:
<ns0:MeasurementsSO xmlns:ns0="http://update.DocumentTypes.Schema.PJ Measurement.Xml">
<SalesOrderNo>23482-4612310</SalesOrderNo>
<Weight>83</Weight>
<Volume>0,03</Volume>
<Numberofcolli>1</Numberofcolli>
</ns0:MeasurementsSO>
您需要添加命名空间:
Sub XMLTest()
Dim myVar As String, pathToXML As String
Dim xmlDoc As Object, xmlNode As Object
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
pathToXML = "C:\Temp\PJMeasurements.xml" '<--- Update path
xmlDoc.setProperty "SelectionNamespaces", "xmlns:ns0='http://update.DocumentTypes.Schema.PJMeasurement.Xml'"
Call xmlDoc.Load(pathToXML)
Set xmlNode = xmlDoc.SelectSingleNode("/ns0:MeasurementsSO/SalesOrderNo")
myVar = "9999-9999999" '<--- Update value
xmlNode.Text = myVar
Call xmlDoc.Save(pathToXML)
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句