| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <sect1 id="zend.json.xml2json">
- <title>Převod XML do JSON</title>
- <para>
- <code>Zend_Json</code> poskytuje metodu pro převod dat formátovaných
- pomocí XML do JSON formátu. Tato vlastnost je inspirována
- <ulink url="http://www.ibm.com/developerworks/xml/library/x-xml2jsonphp/">
- článkem na IBM developerWorks</ulink>.
- </para>
- <para>
- <code>Zend_Json</code> zahrnuje statickou metodu
- <code>Zend_Json::fromXml()</code>. Tato funkce generuje JSON ze vstupu
- ve formátu XML. Tato funkce přijímá jako vstupní parametr jakýkoliv XML
- řetězec. Také přijímá druhý, volitelný parametr zda ignorovat XML
- atributy během převodu. Pokud není tento volitelný parametr zadán,
- defaultní chování je ignorování XML atributů. Volání této funkce je
- naznačeno níže:
- </para>
- <programlisting role="php"><![CDATA[
- // Funkce fromXml jednoduše přijme String obsahující XML data jak vstup.
- $jsonContents = Zend_Json::fromXml($xmlStringContents, true);?>]]>
- </programlisting>
- <para>
- Funkce <code>Zend_Json::fromXml()</code> provádí konverzi vstupního XML
- řetězce a vrací odpovídající zápis ve formátu JSON. V případě chyby v
- XML nebo chyby při převodu, tato funkce vyhazuje výjimku. Tato konverze
- také využívá rekurzivitu při procházení XML stromu. Podporuje zanoření
- do 25 úrovní. Za touto hloubkou vyhodí <code>Zend_Json_Exception</code>.
- V adresáři tests Zend Frameworku je několik XML souborů s různým stupněm
- komplexity pro otestování funkčnosti funkce xml2json.
- </para>
- <para>
- Následující jednoduchý příklad ukazuje jak předaný XML vstup tak JSON
- výstup z funkce <code>Zend_Json::fromXml()</code>. Tento příklad využívá
- volitelného parametru pro neignorování XML atributů během převodu.
- Proto vrácený JSON řetězec obsahuje reprezentaci XML atributů přítomných
- ve vstupním XML řetězci.
- </para>
- <para>
- XML řetězec předaný funkci <code>Zend_Json::fromXml()</code>:
- </para>
- <programlisting role="php"><![CDATA[
- <?xml version="1.0" encoding="UTF-8"?>
- <books>
- <book id="1">
- <title>Code Generation in Action</title>
- <author><first>Jack</first><last>Herrington</last></author>
- <publisher>Manning</publisher>
- </book>
- <book id="2">
- <title>PHP Hacks</title>
- <author><first>Jack</first><last>Herrington</last></author>
- <publisher>O'Reilly</publisher>
- </book>
- <book id="3">
- <title>Podcasting Hacks</title>
- <author><first>Jack</first><last>Herrington</last></author>
- <publisher>O'Reilly</publisher>
- </book>
- </books> ?>]]>
- </programlisting>
- <para>
- JSON výstup vrácený z funkce <code>Zend_Json::fromXml()</code>:
- </para>
- <programlisting role="php"><![CDATA[
- {
- "books" : {
- "book" : [ {
- "@attributes" : {
- "id" : "1"
- },
- "title" : "Code Generation in Action",
- "author" : {
- "first" : "Jack", "last" : "Herrington"
- },
- "publisher" : "Manning"
- }, {
- "@attributes" : {
- "id" : "2"
- },
- "title" : "PHP Hacks", "author" : {
- "first" : "Jack", "last" : "Herrington"
- },
- "publisher" : "O'Reilly"
- }, {
- "@attributes" : {
- "id" : "3"
- },
- "title" : "Podcasting Hacks", "author" : {
- "first" : "Jack", "last" : "Herrington"
- },
- "publisher" : "O'Reilly"
- }
- ]}
- } ?>]]>
- </programlisting>
- <para>
- Více podrobností o funkci xml2json můžete najít v původním návrhu.
- Podívejte se na
- <ulink url="http://tinyurl.com/2tfa8z">návrh Zend_xml2json</ulink>.
- </para>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|