формирование XML из PHP

#
формирование XML из PHP
Добрый день.
Я хочу передать в шаблон массив, сформированный в php.
как правильно сформировать массив, чтобы xml-элементы получали атрибуты?
например: <city_name><name id="2">Город</name></city_name>
если массив формировать примерно как $external_propertys['city_name']['name id='.$id]="Город", то строиться неправильная структура <city_name><name id="2">Город</name id="2"></city_name>
#
Re: формирование XML из PHP
массив надо формировать отдельно, а потом весь его присваивать конкретному элементу в external_propertys[]

например так:

$cityes = array();

// тут можно вставить, например, цикл по числу городов
$city = array();
$city['id'] = 2;
$city['name'] = 'Город';

$cities[] = $city;
// тут будет конец цикла

$external_propertys['cities'] = $cities;


Еще есть другой способ - почитайте примеры вот здесь: http://hostcms.ru/api/HostCMS_5/ExternalXml.html#methodGenXml - вполне наглядно представляется нужная структура массива
Заказов не беру. Консультирую редко.
#
Re: формирование XML из PHP
на первый способ идет ругань по причине того, что тип элемента начинается с цифры, что недопустимо в xml. во втором способе результат надо присвоить $param['external_xml'] я так понимаю? при этом он не передается в xml(по крайней мере его там нет). в мануале сказано, что должен добавиться блоком в начало документа. отсюда вопрос: какого документа и куда он должен добавиться?
#
Re: формирование XML из PHP
а вы $param с присвоенным ['external_xml'] потом в какой метод передаете?
Заказов не беру. Консультирую редко.
#
Re: формирование XML из PHP
ShowTypeOfDelivery().
#
Re: формирование XML из PHP
хм. я не уверен, что у этого метода есть параметр $param['external_xml']...

я так понимаю, что вы хотите вывести адрес и способ доставки на одной и тоже форме?
Заказов не беру. Консультирую редко.
#
Re: формирование XML из PHP
да, примерно это я и хочу сделать
в мануале сказано, что $param этого метода - это массив доп. параметров. так как не указано его особенностей, то скорее всего стандартный. мне показалось, что 'external_xml' относится к стандартным параметрам
#
Re: формирование XML из PHP
опыт работы подсказывает мне, что $param у каждого метода свой.

По сути желаемого, я аналогичную проблему решил немного "в обход", но конструкция получилась рабочей.
У меня было есть условие доставки, при котором форма адреса не нужна. Это условие я определил по умолчанию
И вызывал стандартный метод ShowTypeOfDelivery().
В xsl после полей доставки создал пустой div с некоторым id
Потом написал ajax-загрузчик/перехватчик для содержимого формы адреса.
И при выборе способа доставки, которому нужно задавать адрес, с сервера в этот div подгружались кусочки формы для ввода адреса.
Решение с одной точки зрения можно счесть грязным, а с другой - наоборот оптимизированным.
Демки сейчас к сожалению нет (
Заказов не беру. Консультирую редко.
#
Re: формирование XML из PHP
тут наоборот требуют наличия формы вывода адреса при любом раскладе, а значит должен быть и список городов сразу загружен...
#
Re: формирование XML из PHP
ну тогда только один правильный способ - собирать весь xml полностью с нуля и применять к нему шаблон методом build() класса xsl
Xml для городов у вас уже, как я понимаю, есть, осталось сформировать xml для методов доставки, объединить их, оформить xml-заголовком и корневым тегом.
Заказов не беру. Консультирую редко.
Авторизация