Tips

XML要素のBLOBはデコードが必要

日付2010/10/27
ID76141 (英語原文参照)
バージョンv11
プラットフォームMac/Win

4DのDOMコマンドを使用すれば, テキストだけでなく, ピクチャやBLOBもXMLに収めることができます。BLOBが使用できるということは, 事実上, どんなデータでもXMLにできることを意味します。XML要素に値を代入するコマンドは, DOM SET XML ELEMENT VALUEです。

XML要素の値は, 後にDOM GET XML ELEMENT VALUEコマンドで取り出すことができます。ただし, BLOBはBASE64エンコードされていることに留意する必要があります。したがって元のBLOBにアクセスするためには, DECODEコマンドが必要です。

doc:=Open document("")
CLOSE DOCUMENT(doc)

C_BLOB(myBlob)
C_TEXT(vRootRef;vElemRef)
vRootRef:=DOM Create XML Ref("MyRoot")
vElemRef:=DOM Create XML element(vRootRef;"MyBLOB")
DOM SET XML ELEMENT VALUE(vElemRef;myBlob)
DOM EXPORT TO FILE(vRootRef;"mydoc.xml")
DOM CLOSE XML(vRootRef)
C_BLOB(myBlob)
C_TEXT(vRootRef;vElemRef)
vRootRef:=DOM Parse XML source("mydoc.xml")
vElemRef:=DOM Find XML element(vRootRef;"/MyRoot/MyBLOB")
DOM GET XML ELEMENT VALUE(vElemRef;myBlob)
DECODE(myBlob)

doc:=Open document("")
CLOSE DOCUMENT(doc)
BLOB TO DOCUMENT(Document;myBlob;*)
DOM CLOSE XML(vRootRef)