|
Posted by dc on 06/03/05 19:20
the XML data is saying it contains an array of items... and yet when i
access them itis only returning the first item. I think this is what is
also confusing smartys foreach constructor.
print_r($xml);
// gives:
SimpleXMLElement Object
(
[eventName] => Macromedia 集中ゼミ
[example] => Array
(
[0] => SimpleXMLElement Object
(
[title] => 四角+テキスト
[src] => demo01.php
[description] => 四角+テキスト。日本語対応
)
[1] => SimpleXMLElement Object
etc.
but $xml->example
only accesses the first item of the example array, eg
SimpleXMLElement Object
(
[title] => 四角+テキスト
[src] => demo01.php
[description] => 四角+テキスト。日本語対応
)
is this because simpleXML overrides the array get function to just return
the first item? i guess this is not a smarty issue. I can manually foreach
copy all the elements to a new array, but this seems ugly.
/dc
On Sat, 04 Jun 2005 00:45:09 +0900, Monte Ohrt <monte@ohrt.com> wrote:
> If it is assigned as an object, then you must access in Smarty like such:
>
> {$ex->event}
>
> dc wrote:
>
>> thanks for the amazingly quick response...
>>
>>> If you're only getting the first letter, then your data structure may
>>> not be what you are expecting.
>>>
>>> What is the output of
>>>
>>> print_r($xml);
>>
>>
>>
>> SimpleXMLElement Object
>> (
>> [event] => Macromedia 集中ゼミ
>> [example] => Array
>> (
>> [0] => SimpleXMLElement Object
>> (
>> [title] => 四角+テキスト
>> [src] => demo01.php
>> [description] => 四角+テキスト。日本語対応
>> )
>>
>> [1] => SimpleXMLElement Object
>> (
>> [title] => 外部SWFファイル
>> [src] => demo02.php
>> [description] => SWF呼び出す
>> )
>>
>> )
>> )
>>
>>
>> do i have to convert the SimpleXMLElement Objects to simple arrays for
>> smarty?
>>
>> /dc
>>
>>
>> On Sat, 04 Jun 2005 00:33:51 +0900, Monte Ohrt <monte@ohrt.com> wrote:
>>
>>> If you're only getting the first letter, then your data structure may
>>> not be what you are expecting.
>>>
>>> What is the output of
>>>
>>> print_r($xml);
>>>
>>> ?
>>>
>>> dc wrote:
>>>
>>>> does smarty play nicely with objects created by PHP's simple xml?
>>>>
>>>> ---------------------- PHP
>>>> $xml = simplexml_load_file('assets/exList.xml');
>>>> $sm->assign("xml", $xml);
>>>>
>>>> ---------------------- XML
>>>> <exampleList>
>>>>
>>>> <event>集中ゼミ</event>
>>>>
>>>> <example>
>>>> <title>四角+テキスト</title>
>>>> <src>demo01.php</src>
>>>> <description>四角+テキスト。日本語対応</description>
>>>> </example>
>>>>
>>>> etc
>>>>
>>>> ---------------------- smarty template:
>>>> {foreach from=$xml item=ex }
>>>> {$ex.event}
>>>> {$ex.title}
>>>> {/foreach}
>>>>
>>>>
>>>> but this only gives me the first letter of the item...
>>>>
>>>> would the toplevel of the XML tree be passed into smarty?
>>>> eg exampleList/event
>>>>
>>>> exampleList/example [0]? first item?
>>>>
>>>>
>>>> thanks for any help. would have thot this would be on the smarty site
>>>> as XML display with smarty would seem to be a major use...
>>>>
>>>
>>
>
Navigation:
[Reply to this message]
|