Mam problem z generowanym kodem przez delphi. Najprawdopodobniej coś robię źle i najgorsze że nie wiem co :) Ale do rzeczy, poniżej kod wygenerowany w postaci pliku XML:
<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<category>
<id_parent format="isUnsignedInt"></id_parent>
<level_depth read_only="true" format="isUnsignedInt" readOnly="true"></level_depth>
<nb_products_recursive notFilterable="true" read_only="true" readOnly="true"></nb_products_recursive>
<active required="true" format="isBool"></active>
<id_shop_default format="isUnsignedId"></id_shop_default>
<is_root_category format="isBool"></is_root_category>
<position></position>
<date_add format="isDate"></date_add>
<date_upd format="isDate"></date_upd>
<associations>
<categories nodeType="category" api="categories">
<category>
<id></id>
</category>
</categories>
<products nodeType="product" api="products">
<product>
<id></id>
</product>
</products>
</associations>
</category>
</prestashop>
I teraz np właściwość Active która powinna być typu boolean otrzymuje klasę/interface.
{ IXMLActiveType }
IXMLActiveType = interface(IXMLNode)
['{C8D59159-116B-461A-BCBD-6825E9895D32}']
{ Property Accessors }
function Get_Required: UnicodeString;
function Get_Format: UnicodeString;
procedure Set_Required(Value: UnicodeString);
procedure Set_Format(Value: UnicodeString);
{ Methods & Properties }
property Required: UnicodeString read Get_Required write Set_Required;
property Format: UnicodeString read Get_Format write Set_Format;
end;
Ponadto po załadowaniu XML i odczytaniu takiej właściwości zmienna jest zawsze pusta. Poniżej wklejam jeszcze XML z odczytem już konkretnych danych
<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<category>
<id><![CDATA[1]]></id>
<id_parent><![CDATA[0]]></id_parent>
<level_depth><![CDATA[0]]></level_depth>
<nb_products_recursive notFilterable="true"><![CDATA[19]]></nb_products_recursive>
<active><![CDATA[1]]></active>
<id_shop_default><![CDATA[1]]></id_shop_default>
<is_root_category><![CDATA[0]]></is_root_category>
<position><![CDATA[0]]></position>
<date_add><![CDATA[2019-08-06 16:47:20]]></date_add>
<date_upd><![CDATA[2019-08-06 16:47:20]]></date_upd>
<associations>
<categories nodeType="category" api="categories">
<category xlink:href="http://www.zzz.pl/debug_ps17/api/categories/2">
<id><![CDATA[2]]></id>
</category>
</categories>
<products nodeType="product" api="products"/>
</associations>
</category>
</prestashop>
oraz te same dane w formie JSON
{
"category":
{
"id":1,
"id_parent":"0",
"level_depth":"0",
"nb_products_recursive":"19",
"active":"1",
"id_shop_default":"1",
"is_root_category":"0",
"position":"0",
"date_add":"2019-08-06 16:47:20",
"date_upd":"2019-08-06 16:47:20",
"name":"Baza",
"link_rewrite":"baza",
"description":"",
"meta_title":"",
"meta_description":"",
"meta_keywords":"",
"associations":
{
"categories":
[
{
"id":"2"
}
]
}
}
}
Natomiast nie chcę korzystać z formatu JSON ponieważ prestashop nie przyjmuje danych w jego formacie a jedynie może je zwracać dlatego wolę mięć wszystko w XML.