1
私はfreepascal xmlチュートリアルや投稿がたくさんあることを知っていますが、これまでのところ私は仕事をしてくれないようです。 私はAPI経由でOdooに接続し、データを取得し、処理し、対応するLazarusデスクトップアプリケーションを構築しています。 xmlレスポンスの構造は、(少なくとも私にとっては)非常に扱いにくいです。 例応答は次のとおりです。XML-RPC with Lazarus freepascal
<?xml version='1.0'?>
<methodResponse>
<params>
<param>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>create_date</name>
<value>
<string>2016-03-30 09:05:23</string>
</value>
</member>
<member>
<name>file_name</name>
<value>
<string>O156AP000100</string>
</value>
</member>
<member>
<name>dispatch_date</name>
<value>
<string>2016-04-04</string>
</value>
</member>
<member>
<name>height</name>
<value>
<int>0</int>
</value>
</member>
<member>
<name>custom_option_mapping_ids</name>
<value>
<array>
<data />
</array>
</value>
</member>
<member>
<name>message_ids</name>
<value>
<array>
<data />
</array>
</value>
</member>
<member>
<name>message_summary</name>
<value>
<string />
</value>
</member>
<member>
<name>create_uid</name>
<value>
<array>
<data>
<value>
<int>7</int>
</value>
<value>
<string>My 1st years</string>
</value>
</data>
</array>
</value>
</member>
<member>
<name>display_name</name>
<value>
<string>artwork.job,283</string>
</value>
</member>
<member>
<name>message_is_follower</name>
<value>
<boolean>1</boolean>
</value>
</member>
<member>
<name>production_date</name>
<value>
<boolean>0</boolean>
</value>
</member>
<member>
<name>message_last_post</name>
<value>
<boolean>0</boolean>
</value>
</member>
<member>
<name>id</name>
<value>
<int>283</int>
</value>
</member>
<member>
<name>width</name>
<value>
<int>0</int>
</value>
</member>
<member>
<name>file_path</name>
<value>
<string>2016-04-04/Table Rate/1</string>
</value>
</member>
<member>
<name>text_colour</name>
<value>
<array>
<data>
<value>
<int>489</int>
</value>
<value>
<string>Text Colour: Fuchsia Pink</string>
</value>
</data>
</array>
</value>
</member>
<member>
<name>text_lines</name>
<value>
<array>
<data>
<value>
<int>1686</int>
</value>
<value>
<int>16380</int>
</value>
</data>
</array>
</value>
</member>
<member>
<name>sale_order_id</name>
<value>
<array>
<data>
<value>
<int>368</int>
</value>
<value>
<string>SO156</string>
</value>
</data>
</array>
</value>
</member>
<member>
<name>text_font</name>
<value>
<array>
<data>
<value>
<int>492</int>
</value>
<value>
<string>Font: Verdana</string>
</value>
</data>
</array>
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</param>
</params>
</methodResponse>
問題は値が一意のタグなしである、またはIDのことです。 私がしようとしているのは、名前で値にアクセスすることです。私が直面している問題は、値などのIDがなく、配列の一部であるということです。 私は
variables:= Doc.DocumentElement.GetElementsByTagName('member');
fname:=variables[3].FindNode('value').TextContent;
にしようとしているが、これは構造が変化した場合に失敗し、本当に考慮に配列を取ることはありません。 助けていただければ幸いです。
これはファイルではありませんが、Odooサーバーのxml-rpc応答はストリームです。私はそれを印刷可能なテキストとして取り込み、その例は上記のとおりです。 – Dawid
私は知っています。 FWIW、あなたの返信を見る前に私のコメントを削除しました。 –
おそらくあなたは[Web Service Toolkit](http://wiki.freepascal.org/Web_Service_Toolkit)から始めるべきです。私はWebサービスに精通していません。 – Abelisto