1 <sect1 id="zend.json.xml2json">
2 <title>Převod XML do JSON</title>
4 <code>Zend_Json</code> poskytuje metodu pro převod dat formátovaných
5 pomocí XML do JSON formátu. Tato vlastnost je inspirována
6 <ulink url="http://www.ibm.com/developerworks/xml/library/x-xml2jsonphp/">
7 článkem na IBM developerWorks</ulink>.
11 <code>Zend_Json</code> zahrnuje statickou metodu
12 <code>Zend_Json::fromXml()</code>. Tato funkce generuje JSON ze vstupu
13 ve formátu XML. Tato funkce přijímá jako vstupní parametr jakýkoliv XML
14 řetězec. Také přijímá druhý, volitelný parametr zda ignorovat XML
15 atributy během převodu. Pokud není tento volitelný parametr zadán,
16 defaultní chování je ignorování XML atributů. Volání této funkce je
19 <programlisting role="php"><![CDATA[
20 // Funkce fromXml jednoduše přijme String obsahující XML data jak vstup.
21 $jsonContents = Zend_Json::fromXml($xmlStringContents, true);?>]]>
25 Funkce <code>Zend_Json::fromXml()</code> provádí konverzi vstupního XML
26 řetězce a vrací odpovídající zápis ve formátu JSON. V případě chyby v
27 XML nebo chyby při převodu, tato funkce vyhazuje výjimku. Tato konverze
28 také využívá rekurzivitu při procházení XML stromu. Podporuje zanoření
29 do 25 úrovní. Za touto hloubkou vyhodí <code>Zend_Json_Exception</code>.
30 V adresáři tests Zend Frameworku je několik XML souborů s různým stupněm
31 komplexity pro otestování funkčnosti funkce xml2json.
35 Následující jednoduchý příklad ukazuje jak předaný XML vstup tak JSON
36 výstup z funkce <code>Zend_Json::fromXml()</code>. Tento příklad využívá
37 volitelného parametru pro neignorování XML atributů během převodu.
38 Proto vrácený JSON řetězec obsahuje reprezentaci XML atributů přítomných
39 ve vstupním XML řetězci.
43 XML řetězec předaný funkci <code>Zend_Json::fromXml()</code>:
46 <programlisting role="php"><![CDATA[
47 <?xml version="1.0" encoding="UTF-8"?>
50 <title>Code Generation in Action</title>
51 <author><first>Jack</first><last>Herrington</last></author>
52 <publisher>Manning</publisher>
56 <title>PHP Hacks</title>
57 <author><first>Jack</first><last>Herrington</last></author>
58 <publisher>O'Reilly</publisher>
62 <title>Podcasting Hacks</title>
63 <author><first>Jack</first><last>Herrington</last></author>
64 <publisher>O'Reilly</publisher>
70 JSON výstup vrácený z funkce <code>Zend_Json::fromXml()</code>:
73 <programlisting role="php"><![CDATA[
80 "title" : "Code Generation in Action",
82 "first" : "Jack", "last" : "Herrington"
84 "publisher" : "Manning"
89 "title" : "PHP Hacks", "author" : {
90 "first" : "Jack", "last" : "Herrington"
92 "publisher" : "O'Reilly"
97 "title" : "Podcasting Hacks", "author" : {
98 "first" : "Jack", "last" : "Herrington"
100 "publisher" : "O'Reilly"
107 Více podrobností o funkci xml2json můžete najít v původním návrhu.
109 <ulink url="http://tinyurl.com/2tfa8z">návrh Zend_xml2json</ulink>.