XMLファイルを読み書きするためのLibreOffice Basicマクロがあります。VBAから移植しました。これまでのところ、XML 要素からテキストを取得することを除いて、すべてが機能しているようです。以下は、XML オブジェクトを作成し、それをファイルに書き込み、XML ファイルを XML オブジェクトに読み込む (簡略化された) Sub です。
Sub ExportImportXML
Dim oleService, oXMLexp as Object, oXMLimp as Object
Dim oRoot, oNode as Object
Dim HOME as String
oleService = createUnoService("com.sun.star.bridge.OleObjectFactory")
' Change this one:
HOME = "C:\tmp"
' Create an XML object to export
oXMLexp = oleService.createInstance("Msxml.DOMDocument")
With oXMLexp
.async = False
.validateOnParse = False
.resolveExternals = False
oRoot = .createElement("Root")
.appendChild(oRoot)
oNode = .createElement("ElementA")
oNode.Text = "Text of ElementA"
oRoot.appendChild(oNode)
MsgBox oNode.xml
'THIS DOESN'T WORK!
'MsgBox oNode.Text
oNode = .createElement("ElementB")
oNode.Text = "Text of ElementB"
oRoot.appendChild(oNode)
MsgBox .xml
.Save(HOME & "\test1.xml")
End With
' Create an XML object to import
oXMLimp = oleService.createInstance("Msxml.DOMDocument")
With oXMLimp
.Load(HOME & "\test1.xml")
MsgBox .xml
oNode = .DocumentElement.getElementsByTagName("ElementA").Item(0)
MsgBox oNode.xml
'THIS DOESN'T WORK!
'MsgBox oNode.Text
End With
End Sub
ご覧のとおり、 .Textを使用してノードに書き込むことはできますが、読み取ることはできません。
ちなみに、これはVBAで完全に機能します。
なぜこれが起こっているのですか?