Показать сообщение отдельно
Старый 30.03.2012, 22:11
Sn0wyDream вне форума Посмотреть профиль Отправить личное сообщение для Sn0wyDream Найти все сообщения от Sn0wyDream
  № 9  
Ответить с цитированием
Sn0wyDream

Регистрация: Mar 2012
Сообщений: 13
Код AS3:
<mx:WebService id="ws" fault="mx.controls.Alert.show(event.fault.faultString)" wsdl="http://127.0.0.1/flex_test/index.php?r=webservice/demo"> 
 
<mx:operation name="xml_load" result="xml_load_as(event)" resultFormat="xml"/> 
 
</mx:WebService>
Если resultFormat - "xml" или "e4x", event.result выглядит таким образом:
Код AS3:
<ns1:xml_loadResponse xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:WebserviceControllerwsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <return xsi:type="xsd:string">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;
Если resultFormat - "Object":
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<author>Alexey</author>
...
Но Object передать в дальнейший парсер XML нельзя - нужен именно тип XML.
Если вызывать
Код AS3:
var _xml:XML = new XML(Object);
во Flex ничего не происходит, видимо выдается ошибка - код просто дальше не выполняется (функции типа Alert.show("blabla"); не выполняются). Естественно, если передавать _xml парсеру (при любом значении resultFormat), он ничего не парсит.

А как понять, что stdClass или array?
В таблице базы xml хранится в ячейки с типом "blob".

На всякий случай, класс модели таблицы в Yii:
PHP код:

<?php

/**
 * This is the model class for table "XMLTable".
 *
 * The followings are the available columns in table 'XMLTable':
 * @property integer $id
 * @property string $xml
 */
class XMLTable extends CActiveRecord
{
    
/**
     * Returns the static model of the specified AR class.
     * @param string $className active record class name.
     * @return XMLTable the static model class
     */
    
public static function model($className=__CLASS__)
    {
        return 
parent::model($className);
    }

     
/**
     * @var integer 
     * @soap
     */
    
public $id;
    
/**
     * @var string 
     * @soap
     */
    
public $xml;
}


Последний раз редактировалось Sn0wyDream; 30.03.2012 в 22:15.