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)에서 시작해야합니다. 웹 서비스에 익숙하지 않은 것 같습니다. – Abelisto