On Sun, 20 Apr 2008 19:46:56 +0400
"Dmitry Akindinov" <CGatePro@mx.ru> wrote:
> Здравствуйте,
>
> Михаил К. Епихин wrote:
>> Это работает, спасибо. >> Как быть, если структура XML сложнее, например: >> <?xml version="1.0" encoding="utf-8" ?> >> - <PhoneIdentity xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="CGPNameSpace"> >> <Phone>4732206000</Phone> >> <Identity>Протек [42] - Воронеж</Identity> >> </PhoneIdentity> >> Исходя из документации я пытаюсь использовать функцию XMLBody, но она >>всегда >> возвращает null.
Это, возможно, проще понять в "новом" синтаксисе:
phone = obj.xmlBody("Phone",null,0) - вытащит XML-элемент
<Phone>4732206000</Phone>
а phone.string() - вытащит его string-содержимое - "4732206000"
Можно сделать свою фунцию elemString:
function ElemString(x,key) is
return(x.xmlBody(key,null,0).string()); end function;
тогда
obj.elemString("Phone") - вернёт "4732206000"
а
obj.elemString("Identity") - вернёт "Протек [42] - Воронеж"
>
>> Спасибо. >> >> -----Original Message----- >> From: CommuniGate Pro Russian Discussions [mailto:CGatePro@mx.ru] >> Sent: Friday, April 18, 2008 5:21 PM >> To: CommuniGate Pro Russian Discussions >> Subject: Re: [CGP] FW: Чтение значения из XML >> >> Здравствуйте, >> >> Михаил К. Епихин wrote: >>> Добрый день. >>> >>> Пожалуйста, помогите разобраться. >>> Приложение вызывает HTTPCall, в ответе body - XML, при помощи >>> TextRes=TextToObject(HTTPRes.("body")) получаем объект XML - IsXML говорит >> о >>> нем True (текст XML: <?xml version=\"1.0\"?><string >>> xmlns=\"CGPNameSpace\">g1</string>"). Как получить из него собственно >>> значение (в примере "g1")? >> >> Если объект состоит из всего лишь из <string>...</string>, то для >> извлечения этой строки достаточно String(TextRes). >>
Sincerely,
Vladimir
Получено Sun Apr 20 17:43:17 2008
Этот архив был сгенерирован hypermail 2.1.8 : Mon 21 Apr 2008 - 00:15:21 MSD