<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.xml.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'function.xml-parse-into-struct.php',
    1 => 'xml_parse_into_struct',
    2 => 'XML veriyi &ccedil;&ouml;z&uuml;mleyip sonucu bir dizi i&ccedil;inde d&ouml;nd&uuml;r&uuml;r',
  ),
  'up' => 
  array (
    0 => 'ref.xml.php',
    1 => 'XML &Ccedil;&ouml;z&uuml;mleyici İşlevleri',
  ),
  'prev' => 
  array (
    0 => 'function.xml-parse.php',
    1 => 'xml_parse',
  ),
  'next' => 
  array (
    0 => 'function.xml-parser-create.php',
    1 => 'xml_parser_create',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'reference/xml/functions/xml-parse-into-struct.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.xml-parse-into-struct" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">xml_parse_into_struct</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">xml_parse_into_struct</span> &mdash; <span class="dc-title">XML veriyi çözümleyip sonucu bir dizi içinde döndürür
  </span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.xml-parse-into-struct-description">
  <h3 class="title">Açıklama</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>xml_parse_into_struct</strong></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="class.xmlparser.php" class="type XMLParser">XMLParser</a></span> <code class="parameter">$çözümleyici</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$veri</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter reference">&$değerler</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter reference">&$indis</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span><br>): <span class="type"><a href="language.types.integer.php" class="type int">int</a></span></div>

  <p class="para rdfs-comment">
   Bu işlev bir XML belgeyi iki diziye çözümler.  <code class="parameter">indis</code>
   dizisi, <code class="parameter">değerler</code> dizisindeki değerlerin konumlarına
   birer gösterici içerir. Bu dizilerin işleve gönderimli aktarılmaları
   gerekir.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.xml-parse-into-struct-parameters">
  <h3 class="title">Bağımsız Değişkenler</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">çözümleyici</code></dt>
     <dd>
      <p class="para">
       XMLParser nesnesi.
      </p>
     </dd>
    
    
     <dt><code class="parameter">veri</code></dt>
     <dd>
      <p class="para">
       XML veriyi içeren dizi.
      </p>
     </dd>
    
    
     <dt><code class="parameter">değerler</code></dt>
     <dd>
      <p class="para">
       XML verinin değerlerini içeren dizi.
      </p>
     </dd>
    
    
     <dt><code class="parameter">indis</code></dt>
     <dd>
      <p class="para">
       $değerler içindeki uygun değerlerin konumlarına göstericiler içeren
       bir dizi.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.xml-parse-into-struct-returnvalues">
  <h3 class="title">Dönen Değerler</h3>
  <p class="para">
   Başarısızlık durumunda 0, başarı durumunda 1 döner. Bu, <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> ve <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>
   olarak ele alınmamalıdır. Dönen değeri === işleci ile karşılaştırın.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.xml-parse-into-struct-changelog">
  <h3 class="title">Sürüm Bilgisi</h3>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Sürüm: </th>
      <th>Açıklama</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
 <td>8.0.0</td>
 <td>
  <code class="parameter">ayrıştırıcı</code> artık bir <span class="classname"><a href="class.xmlparser.php" class="classname">XMLParser</a></span>
  örneği olabiliyor; evvelce <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> türünde geçerli bir
  <code class="literal">xml</code> değeri kabul ederdi.
 </td>
</tr>

    </tbody>
   
  </table>

 </div>


 <div class="refsect1 examples" id="refsect1-function.xml-parse-into-struct-examples">
  <h3 class="title">Örnekler</h3>
  <p class="para">
   Aşağıdaki örnekte dönen dizilerin iç yapısı gösterilmiştir. Basit olarak,
   <code class="literal">para</code> etiketi içine <code class="literal">note</code> etiketini
   gömüp, bunu çözümledikten sonra üretilen dizileri dökümlüyoruz.
   <div class="example" id="example-1">
    <p><strong>Örnek 1 - <span class="function"><strong>xml_parse_into_struct()</strong></span> örneği</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$simple </span><span style="color: #007700">= </span><span style="color: #DD0000">"&lt;para&gt;&lt;note&gt;basit örnek&lt;/note&gt;&lt;/para&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$p </span><span style="color: #007700">= </span><span style="color: #0000BB">xml_parser_create</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">xml_parse_into_struct</span><span style="color: #007700">(</span><span style="color: #0000BB">$p</span><span style="color: #007700">, </span><span style="color: #0000BB">$simple</span><span style="color: #007700">, </span><span style="color: #0000BB">$vals</span><span style="color: #007700">, </span><span style="color: #0000BB">$index</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">xml_parser_free</span><span style="color: #007700">(</span><span style="color: #0000BB">$p</span><span style="color: #007700">);<br />echo </span><span style="color: #DD0000">"İndis dizisi\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$index</span><span style="color: #007700">);<br />echo </span><span style="color: #DD0000">"\nDeğerler dizisi\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$vals</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>
     Çıktı şöyle olur:
    </p></div>
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">İndis dizisi
Array
(
    [PARA] =&gt; Array
        (
            [0] =&gt; 0
            [1] =&gt; 2
        )

    [NOTE] =&gt; Array
        (
            [0] =&gt; 1
        )

)

Değerler dizisi
Array
(
    [0] =&gt; Array
        (
            [tag] =&gt; PARA
            [type] =&gt; open
            [level] =&gt; 1
        )

    [1] =&gt; Array
        (
            [tag] =&gt; NOTE
            [type] =&gt; complete
            [level] =&gt; 2
            [value] =&gt; basit örnek
        )

    [2] =&gt; Array
        (
            [tag] =&gt; PARA
            [type] =&gt; close
            [level] =&gt; 1
        )

)</pre>
</div>
    </div>
   </div>
  </p>
  <p class="para">
   Olaylarla tetiklenen çözümleme (expat kütüphanesine dayalı olarak) XML
   belgenin karmaşıklığına bağlı olarak karmaşıklaşabilir. Bu işlev DOM tarzı
   bir nesne üretmez fakat bir ağaç halinde uygun bir yapı üretir. Bu
   bakımdan, XML belge içindeki veriyi gösteren nesneler kolayca
   oluşturulabilir. Amino asitlerden oluşan küçük bir veritabanı olarak
   aşağıdaki XML belgeyi ele alalım:
   <div class="example" id="example-2">
    <p><strong>Örnek 2 - moldb.xml - küçük bir moleküler bilgi veritabanı</strong></p>
    <div class="example-contents">
<div class="xmlcode"><pre class="xmlcode">&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;moldb&gt;

  &lt;molecule&gt;
      &lt;name&gt;Alanine&lt;/name&gt;
      &lt;symbol&gt;ala&lt;/symbol&gt;
      &lt;code&gt;A&lt;/code&gt;
      &lt;type&gt;hydrophobic&lt;/type&gt;
  &lt;/molecule&gt;

  &lt;molecule&gt;
      &lt;name&gt;Lysine&lt;/name&gt;
      &lt;symbol&gt;lys&lt;/symbol&gt;
      &lt;code&gt;K&lt;/code&gt;
      &lt;type&gt;charged&lt;/type&gt;
  &lt;/molecule&gt;

&lt;/moldb&gt;</pre>
</div>
    </div>

   </div>
   Bu belgeyi çözümleyip uygun nesneleri üretecek kod:
   <div class="example" id="example-3">
    <p><strong>Örnek 3 - parsemoldb.php - moldb.xml dosyasını bir moleküler nesne dizisine
    çözümler</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">class </span><span style="color: #0000BB">AminoAcid </span><span style="color: #007700">{<br />    var </span><span style="color: #0000BB">$name</span><span style="color: #007700">;    </span><span style="color: #FF8000">// amino asidin ismi<br />    </span><span style="color: #007700">var </span><span style="color: #0000BB">$symbol</span><span style="color: #007700">;  </span><span style="color: #FF8000">// üç harfli simge<br />    </span><span style="color: #007700">var </span><span style="color: #0000BB">$code</span><span style="color: #007700">;    </span><span style="color: #FF8000">// tek harflik kod<br />    </span><span style="color: #007700">var </span><span style="color: #0000BB">$type</span><span style="color: #007700">;    </span><span style="color: #FF8000">// hydrophobic, charged veya neutral<br /><br />    </span><span style="color: #007700">function </span><span style="color: #0000BB">__construct </span><span style="color: #007700">(</span><span style="color: #0000BB">$aa</span><span style="color: #007700">)<br />    {<br />        foreach (</span><span style="color: #0000BB">$aa </span><span style="color: #007700">as </span><span style="color: #0000BB">$k</span><span style="color: #007700">=&gt;</span><span style="color: #0000BB">$v</span><span style="color: #007700">)<br />            </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">$k </span><span style="color: #007700">= </span><span style="color: #0000BB">$aa</span><span style="color: #007700">[</span><span style="color: #0000BB">$k</span><span style="color: #007700">];<br />    }<br />}<br /><br />function </span><span style="color: #0000BB">readDatabase</span><span style="color: #007700">(</span><span style="color: #0000BB">$filename</span><span style="color: #007700">)<br />{<br />    </span><span style="color: #FF8000">// amino asit veritabanını okuyalım<br />    </span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #0000BB">file_get_contents</span><span style="color: #007700">(</span><span style="color: #0000BB">$filename</span><span style="color: #007700">);<br />    </span><span style="color: #0000BB">$parser </span><span style="color: #007700">= </span><span style="color: #0000BB">xml_parser_create</span><span style="color: #007700">();<br />    </span><span style="color: #0000BB">xml_parser_set_option</span><span style="color: #007700">(</span><span style="color: #0000BB">$parser</span><span style="color: #007700">, </span><span style="color: #0000BB">XML_OPTION_CASE_FOLDING</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">);<br />    </span><span style="color: #0000BB">xml_parser_set_option</span><span style="color: #007700">(</span><span style="color: #0000BB">$parser</span><span style="color: #007700">, </span><span style="color: #0000BB">XML_OPTION_SKIP_WHITE</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />    </span><span style="color: #0000BB">xml_parse_into_struct</span><span style="color: #007700">(</span><span style="color: #0000BB">$parser</span><span style="color: #007700">, </span><span style="color: #0000BB">$data</span><span style="color: #007700">, </span><span style="color: #0000BB">$values</span><span style="color: #007700">, </span><span style="color: #0000BB">$tags</span><span style="color: #007700">);<br />    </span><span style="color: #0000BB">xml_parser_free</span><span style="color: #007700">(</span><span style="color: #0000BB">$parser</span><span style="color: #007700">);<br /><br />    </span><span style="color: #FF8000">// dizileri açalım<br />    </span><span style="color: #007700">foreach (</span><span style="color: #0000BB">$tags </span><span style="color: #007700">as </span><span style="color: #0000BB">$key</span><span style="color: #007700">=&gt;</span><span style="color: #0000BB">$val</span><span style="color: #007700">) {<br />        if (</span><span style="color: #0000BB">$key </span><span style="color: #007700">== </span><span style="color: #DD0000">"molecule"</span><span style="color: #007700">) {<br />            </span><span style="color: #0000BB">$molranges </span><span style="color: #007700">= </span><span style="color: #0000BB">$val</span><span style="color: #007700">;<br />            </span><span style="color: #FF8000">// Dizi girdilerindeki her devamlı dizi çifti<br />            // bir molekülün alt ve üst aralıklarını tanımlar<br />            </span><span style="color: #007700">for (</span><span style="color: #0000BB">$i</span><span style="color: #007700">=</span><span style="color: #0000BB">0</span><span style="color: #007700">; </span><span style="color: #0000BB">$i </span><span style="color: #007700">&lt; </span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$molranges</span><span style="color: #007700">); </span><span style="color: #0000BB">$i</span><span style="color: #007700">+=</span><span style="color: #0000BB">2</span><span style="color: #007700">) {<br />                </span><span style="color: #0000BB">$offset </span><span style="color: #007700">= </span><span style="color: #0000BB">$molranges</span><span style="color: #007700">[</span><span style="color: #0000BB">$i</span><span style="color: #007700">] + </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />                </span><span style="color: #0000BB">$len </span><span style="color: #007700">= </span><span style="color: #0000BB">$molranges</span><span style="color: #007700">[</span><span style="color: #0000BB">$i </span><span style="color: #007700">+ </span><span style="color: #0000BB">1</span><span style="color: #007700">] - </span><span style="color: #0000BB">$offset</span><span style="color: #007700">;<br />                </span><span style="color: #0000BB">$tdb</span><span style="color: #007700">[] = </span><span style="color: #0000BB">parseMol</span><span style="color: #007700">(</span><span style="color: #0000BB">array_slice</span><span style="color: #007700">(</span><span style="color: #0000BB">$values</span><span style="color: #007700">, </span><span style="color: #0000BB">$offset</span><span style="color: #007700">, </span><span style="color: #0000BB">$len</span><span style="color: #007700">));<br />            }<br />        } else {<br />            continue;<br />        }<br />    }<br />    return </span><span style="color: #0000BB">$tdb</span><span style="color: #007700">;<br />}<br /><br />function </span><span style="color: #0000BB">parseMol</span><span style="color: #007700">(</span><span style="color: #0000BB">$mvalues</span><span style="color: #007700">)<br />{<br />    for (</span><span style="color: #0000BB">$i</span><span style="color: #007700">=</span><span style="color: #0000BB">0</span><span style="color: #007700">; </span><span style="color: #0000BB">$i </span><span style="color: #007700">&lt; </span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$mvalues</span><span style="color: #007700">); </span><span style="color: #0000BB">$i</span><span style="color: #007700">++) {<br />        </span><span style="color: #0000BB">$mol</span><span style="color: #007700">[</span><span style="color: #0000BB">$mvalues</span><span style="color: #007700">[</span><span style="color: #0000BB">$i</span><span style="color: #007700">][</span><span style="color: #DD0000">"tag"</span><span style="color: #007700">]] = </span><span style="color: #0000BB">$mvalues</span><span style="color: #007700">[</span><span style="color: #0000BB">$i</span><span style="color: #007700">][</span><span style="color: #DD0000">"value"</span><span style="color: #007700">];<br />    }<br />    return new </span><span style="color: #0000BB">AminoAcid</span><span style="color: #007700">(</span><span style="color: #0000BB">$mol</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">$db </span><span style="color: #007700">= </span><span style="color: #0000BB">readDatabase</span><span style="color: #007700">(</span><span style="color: #DD0000">"moldb.xml"</span><span style="color: #007700">);<br />echo </span><span style="color: #DD0000">"** Amino Asit Nesneleri Veritabanı:\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$db</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
   <var class="filename">parsemoldb.php</var> betiği çalıştırılınca,
   <var class="varname">$db</var> dizisi Amino asit nesnelerinden oluşturulmuş olur.
   Betiğin çıktısı şöyle olur:
   <div class="informalexample">
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">** Amino Asit Nesneleri Veritabanı:
Array
(
    [0] =&gt; aminoacid Object
        (
            [name] =&gt; Alanine
            [symbol] =&gt; ala
            [code] =&gt; A
            [type] =&gt; hydrophobic
        )

    [1] =&gt; aminoacid Object
        (
            [name] =&gt; Lysine
            [symbol] =&gt; lys
            [code] =&gt; K
            [type] =&gt; charged
        )

)</pre>
</div>
    </div>
   </div>
  </p>
 </div>


</div><?php manual_footer($setup); ?>