<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/simplexml.examples.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'simplexml.examples-basic.php',
    1 => 'Uso B&aacute;sico de SimpleXML',
    2 => 'Uso B&aacute;sico de SimpleXML',
  ),
  'up' => 
  array (
    0 => 'simplexml.examples.php',
    1 => 'Exemplos',
  ),
  'prev' => 
  array (
    0 => 'simplexml.examples.php',
    1 => 'Exemplos',
  ),
  'next' => 
  array (
    0 => 'simplexml.examples-errors.php',
    1 => 'Lidando com erros XML',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'reference/simplexml/examples.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="simplexml.examples-basic" class="section">
  <h2 class="title">Uso Básico de SimpleXML</h2>
  <p class="para">
   Muitos exemplos nesta referência requerem uma string XML. Em vez de
   repetir esta string em todos os exemplos, ela foi colocada em um arquivo que
   incluímos em cada exemplo. Este arquivo incluído é mostrado na
   seção de exemplo a seguir. Alternativamente, um documento XML
   pode ser criado e lido com <span class="function"><a href="function.simplexml-load-file.php" class="function">simplexml_load_file()</a></span>.
  </p>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Exemplo #1 Inclusão do arquivo examples/simplexml-data.php com string XML</strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$xmlstr </span><span style="color: #007700">= &lt;&lt;&lt;XML<br /></span><span style="color: #DD0000">&lt;?xml version='1.0' standalone='yes'?&gt;<br />&lt;filmes&gt;<br /> &lt;filme&gt;<br />  &lt;titulo&gt;PHP: Nos Bastidores do Interpretador&lt;/titulo&gt;<br />  &lt;personagens&gt;<br />   &lt;personagem&gt;<br />    &lt;nome&gt;Srta. Codificadora&lt;/nome&gt;<br />    &lt;ator&gt;Onlivia Actora&lt;/ator&gt;<br />   &lt;/personagem&gt;<br />   &lt;personagem&gt;<br />    &lt;nome&gt;Sr. Codificador&lt;/nome&gt;<br />    &lt;ator&gt;El Act&amp;#243;r&lt;/ator&gt;<br />   &lt;/personagem&gt;<br />  &lt;/personagens&gt;<br />  &lt;resumo&gt;<br />   Então, essa linguagem. Se parece com uma linguagem de programação. Ou seria uma<br />   liguagem de scripts? Tudo é revelado nesta emocionante paródia de terror<br />   de um documentário.<br />  &lt;/resumo&gt;<br />  &lt;melhores-frases&gt;<br />   &lt;frase&gt;O PHP resolve todos os meus problemas!&lt;/frase&gt;<br />  &lt;/melhores-frases&gt;<br />  &lt;classificacao tipo="gostei"&gt;7&lt;/classificacao&gt;<br />  &lt;classificacao tipo="estrelas"&gt;5&lt;/classificacao&gt;<br /> &lt;/filme&gt;<br />&lt;/filmes&gt;<br /></span><span style="color: #007700">XML;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
  <p class="para">
   A simplicidade do SimpleXML aparece mais claramente quando se extrai
   uma string ou número de um documento XML básico.
   <div class="example" id="example-2">
    <p><strong>Exemplo #2 Obtendo o <code class="literal">&lt;resumo&gt;</code></strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'examples/simplexml-data.php'</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$filmes </span><span style="color: #007700">= new </span><span style="color: #0000BB">SimpleXMLElement</span><span style="color: #007700">(</span><span style="color: #0000BB">$xmlstr</span><span style="color: #007700">);<br /><br />echo </span><span style="color: #0000BB">$filmes</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">filme</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]-&gt;</span><span style="color: #0000BB">resumo</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>O exemplo acima produzirá:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive cdata"><pre>

   Então, essa linguagem. Se parece com uma linguagem de programação. Ou seria uma
   liguagem de scripts? Tudo é revelado nesta emocionante paródia de terror
   de um documentário.

</pre></div>
    </div>
   </div>
  </p>
  <p class="para">
   O acesso a elementos em um documento XML que contém caracteres não permitidos pela
   convenção de nomenclatura do PHP (por exemplo, o hífen) pode ser realizado encapsulando o
   nome do elemento entre chaves e apóstrofo.
   <div class="example" id="example-3">
    <p><strong>Exemplo #3 Obtendo <code class="literal">&lt;frase&gt;</code></strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'examples/simplexml-data.php'</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$filmes </span><span style="color: #007700">= new </span><span style="color: #0000BB">SimpleXMLElement</span><span style="color: #007700">(</span><span style="color: #0000BB">$xmlstr</span><span style="color: #007700">);<br /><br />echo </span><span style="color: #0000BB">$filmes</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">filme</span><span style="color: #007700">-&gt;{</span><span style="color: #DD0000">'melhores-frases'</span><span style="color: #007700">}-&gt;</span><span style="color: #0000BB">frase</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>O exemplo acima produzirá:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive cdata"><pre>
O PHP resolve todos os meus problemas!
</pre></div>
    </div>
   </div>
  </p>
  <p class="para">
   <div class="example" id="example-4">
    <p><strong>Exemplo #4 Acessando elementos não exclusivos em SimpleXML</strong></p>
    <div class="example-contents"><p>
     Quando existem múltiplas instâncias de um elemento como filhos de
     um único elemento pai, aplicam-se técnicas normais de iteração.
    </p></div>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'examples/simplexml-data.php'</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$filmes </span><span style="color: #007700">= new </span><span style="color: #0000BB">SimpleXMLElement</span><span style="color: #007700">(</span><span style="color: #0000BB">$xmlstr</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* Para cada nó &lt;personagem&gt;, é mostrado um &lt;nome&gt; separado. */<br /></span><span style="color: #007700">foreach (</span><span style="color: #0000BB">$filmes</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">filme</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">personagens</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">personagem </span><span style="color: #007700">as </span><span style="color: #0000BB">$personagem</span><span style="color: #007700">) {<br />   echo </span><span style="color: #0000BB">$personagem</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">nome</span><span style="color: #007700">, </span><span style="color: #DD0000">' representado(a) por '</span><span style="color: #007700">, </span><span style="color: #0000BB">$personagem</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ator</span><span style="color: #007700">, </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>O exemplo acima produzirá:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive cdata"><pre>
Srta. Codificadora representado(a) por Onlivia Actora
Sr. Codificador representado(a) por El Actór
</pre></div>
    </div>
   </div>
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <p class="para">
    Propriedades (<code class="literal">$filmes-&gt;filme</code> no exemplo anterior) não são
    arrays. Elas são objetos <a href="class.iterator.php" class="link">iteráveis</a> e
    <a href="class.arrayaccess.php" class="link">acessíveis</a>.
   </p>
  </p></blockquote>
  <p class="para">
   <div class="example" id="example-5">
    <p><strong>Exemplo #5 Usando atributos</strong></p>
    <div class="example-contents"><p>
     Até agora, foi coberto apenas o trabalho de leitura dos nomes dos elementos
     e seus valores. SimpleXML também pode acessar atributos de elementos.
     Os atributos de um elemento são acessados da mesma forma que os elementos
     de um <span class="type"><a href="language.types.array.php" class="type array">array</a></span>.
    </p></div>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'examples/simplexml-data.php'</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$filmes </span><span style="color: #007700">= new </span><span style="color: #0000BB">SimpleXMLElement</span><span style="color: #007700">(</span><span style="color: #0000BB">$xmlstr</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* Acessando os nós &lt;classificacao&gt; do primeiro filme.<br /> * Mostra o valor da classificação também. */<br /></span><span style="color: #007700">foreach (</span><span style="color: #0000BB">$filmes</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">filme</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]-&gt;</span><span style="color: #0000BB">classificacao </span><span style="color: #007700">as </span><span style="color: #0000BB">$classificacao</span><span style="color: #007700">) {<br />    switch((string) </span><span style="color: #0000BB">$classificacao</span><span style="color: #007700">[</span><span style="color: #DD0000">'tipo'</span><span style="color: #007700">]) { </span><span style="color: #FF8000">// Obtém atributos como índices de elementos<br />    </span><span style="color: #007700">case </span><span style="color: #DD0000">'gostei'</span><span style="color: #007700">:<br />        echo </span><span style="color: #0000BB">$classificacao</span><span style="color: #007700">, </span><span style="color: #DD0000">' gostaram, '</span><span style="color: #007700">;<br />        break;<br />    case </span><span style="color: #DD0000">'estrelas'</span><span style="color: #007700">:<br />        echo </span><span style="color: #0000BB">$classificacao</span><span style="color: #007700">, </span><span style="color: #DD0000">' estrelas'</span><span style="color: #007700">;<br />        break;<br />    }<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>O exemplo acima produzirá:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive cdata"><pre>
7 gostaram, 5 estrelas
</pre></div>
    </div>
   </div>
  </p>
  <p class="para">
   <div class="example" id="example-6">
    <p><strong>Exemplo #6 Comparando Elementos e Atributos com Texto</strong></p>
    <div class="example-contents"><p>
     Para comparar um elemento ou atributo com uma string ou passá-lo para uma
     função que requer uma string, ele deve ser convertido em uma string usando
     <code class="literal">(string)</code>. Caso contrário, o PHP trata o elemento como um objeto.
    </p></div>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'examples/simplexml-data.php'</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$filmes </span><span style="color: #007700">= new </span><span style="color: #0000BB">SimpleXMLElement</span><span style="color: #007700">(</span><span style="color: #0000BB">$xmlstr</span><span style="color: #007700">);<br /><br />if ((string) </span><span style="color: #0000BB">$filmes</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">filme</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">titulo </span><span style="color: #007700">== </span><span style="color: #DD0000">'PHP: Nos Bastidores do Interpretador'</span><span style="color: #007700">) {<br />    print </span><span style="color: #DD0000">'Meu filme favorito. '</span><span style="color: #007700">;<br />}<br /><br />echo </span><span style="color: #0000BB">htmlentities</span><span style="color: #007700">((string) </span><span style="color: #0000BB">$filmes</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">filme</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">titulo</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>O exemplo acima produzirá:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive cdata"><pre>
Meu filme favorito. PHP: Nos Bastidores do Interpretador
</pre></div>
    </div>
   </div>
  </p>
  <p class="para">
   <div class="example" id="example-7">
    <p><strong>Exemplo #7 Comparando Dois Elementos</strong></p>
    <div class="example-contents"><p>
     Dois SimpleXMLElements são considerados diferentes mesmo que apontem para
     o mesmo elemento.
    </p></div>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'examples/simplexml-data.php'</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$filmes1 </span><span style="color: #007700">= new </span><span style="color: #0000BB">SimpleXMLElement</span><span style="color: #007700">(</span><span style="color: #0000BB">$xmlstr</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$filmes2 </span><span style="color: #007700">= new </span><span style="color: #0000BB">SimpleXMLElement</span><span style="color: #007700">(</span><span style="color: #0000BB">$xmlstr</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$filmes1 </span><span style="color: #007700">== </span><span style="color: #0000BB">$filmes2</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>O exemplo acima produzirá:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive cdata"><pre>
bool(false)
</pre></div>
    </div>
   </div>
  </p>
  <p class="para">
   <div class="example" id="example-8">
    <p><strong>Exemplo #8 Usando XPath</strong></p>
    <div class="example-contents"><p>
     SimpleXML inclui suporte interno a <abbr title="XML Path Language">XPath</abbr>.
     Para encontrar todos os elementos <code class="literal">&lt;personagem&gt;</code>.
    </p></div>
    <div class="example-contents"><p>
     &#039;<code class="literal">//</code>&#039; serve como um corginga. Para especificar caminhos
     absolutos, omita uma das barras:
    </p></div>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'examples/simplexml-data.php'</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$filmes </span><span style="color: #007700">= new </span><span style="color: #0000BB">SimpleXMLElement</span><span style="color: #007700">(</span><span style="color: #0000BB">$xmlstr</span><span style="color: #007700">);<br /><br />foreach (</span><span style="color: #0000BB">$filmes</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">xpath</span><span style="color: #007700">(</span><span style="color: #DD0000">'//personagem'</span><span style="color: #007700">) as </span><span style="color: #0000BB">$personagem</span><span style="color: #007700">) {<br />    echo </span><span style="color: #0000BB">$personagem</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">nome</span><span style="color: #007700">, </span><span style="color: #DD0000">' representado(a) por '</span><span style="color: #007700">, </span><span style="color: #0000BB">$personagem</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ator</span><span style="color: #007700">, </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>O exemplo acima produzirá:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive cdata"><pre>
Srta. Codificadora representado(a) por Onlivia Actora
Sr. Codificador representado(a) por El Actór
</pre></div>
    </div>
   </div>
  </p>
  <p class="para">
   <div class="example" id="example-9">
    <p><strong>Exemplo #9 Definindo valores</strong></p>
    <div class="example-contents"><p>
     Os dados no SimpleXML não precisam ser constantes. O objeto permite
     a manipulação de todos os seus elementos.
    </p></div>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'examples/simplexml-data.php'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$filmes </span><span style="color: #007700">= new </span><span style="color: #0000BB">SimpleXMLElement</span><span style="color: #007700">(</span><span style="color: #0000BB">$xmlstr</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$filmes</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">filme</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]-&gt;</span><span style="color: #0000BB">personagens</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">personagem</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]-&gt;</span><span style="color: #0000BB">nome </span><span style="color: #007700">= </span><span style="color: #DD0000">'Senhorita Codificadora'</span><span style="color: #007700">;<br /><br />echo </span><span style="color: #0000BB">$filmes</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">asXML</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>O exemplo acima produzirá:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive cdata"><pre>
&lt;?xml version=&quot;1.0&quot; standalone=&quot;yes&quot;?&gt;
&lt;filmes&gt;
 &lt;filme&gt;
  &lt;titulo&gt;PHP: Nos Bastidores do Interpretador&lt;/titulo&gt;
  &lt;personagens&gt;
   &lt;personagem&gt;
    &lt;nome&gt;Senhorita Codificadora&lt;/nome&gt;
    &lt;ator&gt;Onlivia Actora&lt;/ator&gt;
   &lt;/personagem&gt;
   &lt;personagem&gt;
    &lt;nome&gt;Sr. Codificador&lt;/nome&gt;
    &lt;ator&gt;El Act&amp;#xF3;r&lt;/ator&gt;
   &lt;/personagem&gt;
  &lt;/personagens&gt;
  &lt;resumo&gt;
   Então, essa linguagem. Se parece com uma linguagem de programação. Ou seria uma
   liguagem de scripts? Tudo é revelado nesta emocionante paródia de terror
   de um documentário.
  &lt;/resumo&gt;
  &lt;melhores-frases&gt;
   &lt;frase&gt;O PHP resolve todos os meus problemas!&lt;/frase&gt;
  &lt;/melhores-frases&gt;
  &lt;classificacao tipo=&quot;gostei&quot;&gt;7&lt;/classificacao&gt;
  &lt;classificacao tipo=&quot;estrelas&quot;&gt;5&lt;/classificacao&gt;
 &lt;/filme&gt;
&lt;/filmes&gt;
</pre></div>
    </div>
   </div>
  </p>
  <p class="para">
   <div class="example" id="example-10">
    <p><strong>Exemplo #10 Adicionando elementos e atributos</strong></p>
    <div class="example-contents"><p>
     SimpleXML tem a capacidade de adicionar facilmente filhos
     e atributos.
    </p></div>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'examples/simplexml-data.php'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$filmes </span><span style="color: #007700">= new </span><span style="color: #0000BB">SimpleXMLElement</span><span style="color: #007700">(</span><span style="color: #0000BB">$xmlstr</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$personagem </span><span style="color: #007700">= </span><span style="color: #0000BB">$filmes</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">filme</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]-&gt;</span><span style="color: #0000BB">personagens</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">addChild</span><span style="color: #007700">(</span><span style="color: #DD0000">'personagem'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$personagem</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">addChild</span><span style="color: #007700">(</span><span style="color: #DD0000">'nome'</span><span style="color: #007700">, </span><span style="color: #DD0000">'Sr. Interpretador'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$personagem</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">addChild</span><span style="color: #007700">(</span><span style="color: #DD0000">'ator'</span><span style="color: #007700">, </span><span style="color: #DD0000">'Fulano de Tal'</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$classificacao </span><span style="color: #007700">= </span><span style="color: #0000BB">$filmes</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">filme</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]-&gt;</span><span style="color: #0000BB">addChild</span><span style="color: #007700">(</span><span style="color: #DD0000">'classificacao'</span><span style="color: #007700">, </span><span style="color: #DD0000">'PG'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$classificacao</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">addAttribute</span><span style="color: #007700">(</span><span style="color: #DD0000">'tipo'</span><span style="color: #007700">, </span><span style="color: #DD0000">'mpaa'</span><span style="color: #007700">);<br /><br />echo </span><span style="color: #0000BB">$filmes</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">asXML</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>O exemplo acima produzirá:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive cdata"><pre>
&lt;?xml version=&quot;1.0&quot; standalone=&quot;yes&quot;?&gt;
&lt;filmes&gt;
 &lt;filme&gt;
  &lt;titulo&gt;PHP: Nos Bastidores do Interpretador&lt;/titulo&gt;
  &lt;personagens&gt;
   &lt;personagem&gt;
    &lt;nome&gt;Srta. Codificadora&lt;/nome&gt;
    &lt;ator&gt;Onlivia Actora&lt;/ator&gt;
   &lt;/personagem&gt;
   &lt;personagem&gt;
    &lt;nome&gt;Sr. Codificador&lt;/nome&gt;
    &lt;actor&gt;El Act&amp;#xF3;r&lt;/actor&gt;
   &lt;/personagem&gt;
  &lt;personagem&gt;&lt;nome&gt;Sr. Interpretador&lt;/nome&gt;&lt;ator&gt;Fulano de Tal&lt;/ator&gt;&lt;/personagem&gt;&lt;/personagens&gt;
  &lt;resumo&gt;
   Então, essa linguagem. Se parece com uma linguagem de programação. Ou seria uma
   liguagem de scripts? Tudo é revelado nesta emocionante paródia de terror
   de um documentário.
  &lt;/resumo&gt;
  &lt;melhores-frases&gt;
   &lt;frase&gt;O PHP resolve todos os meus problemas!&lt;/frase&gt;
  &lt;/melhores-frases&gt;
  &lt;classificacao tipo=&quot;gostei&quot;&gt;7&lt;/classificacao&gt;
  &lt;classificacao tipo=&quot;estrelas&quot;&gt;5&lt;/classificacao&gt;
 &lt;classificacao tipo=&quot;mpaa&quot;&gt;PG&lt;/classificacao&gt;&lt;/filme&gt;
&lt;/filmes&gt;
</pre></div>
    </div>
   </div>
  </p>
  <p class="para">
   <div class="example" id="example-11">
    <p><strong>Exemplo #11 Interoperabilidade com o DOM</strong></p>
    <div class="example-contents"><p>
     PHP possui um mecanismo para converter nós XML entre os formatos
     SimpleXML e DOM. Este exemplo mostra como um elemento DOM
     pode ser alterado para SimpleXML.
    </p></div>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$dom </span><span style="color: #007700">= new </span><span style="color: #0000BB">DOMDocument</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$dom</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">loadXML</span><span style="color: #007700">(</span><span style="color: #DD0000">'&lt;livros&gt;&lt;livro&gt;&lt;titulo&gt;Blá&lt;/titulo&gt;&lt;/livro&gt;&lt;/livros&gt;'</span><span style="color: #007700">);<br />if (!</span><span style="color: #0000BB">$dom</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">'Erro ao interpretar o documento.'</span><span style="color: #007700">;<br />    exit;<br />}<br /><br /></span><span style="color: #0000BB">$livros </span><span style="color: #007700">= </span><span style="color: #0000BB">simplexml_import_dom</span><span style="color: #007700">(</span><span style="color: #0000BB">$dom</span><span style="color: #007700">);<br /><br />echo </span><span style="color: #0000BB">$livros</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">livro</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]-&gt;</span><span style="color: #0000BB">titulo</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>O exemplo acima produzirá:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive cdata"><pre>
Blá
</pre></div>
    </div>
   </div>
  </p>
  <p class="para">
   <div class="example" id="example-12">
    <p><strong>Exemplo #12 Trabalhando com namespaces</strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$data </span><span style="color: #007700">= &lt;&lt;&lt;XML<br /></span><span style="color: #DD0000">&lt;movies xmlns="http://default" xmlns:a="http://a"&gt;<br /> &lt;movie xml:id="movie1" a:link="IMDB"&gt;<br />  &lt;a:actor&gt;Onlivia Actora&lt;/a:actor&gt;<br /> &lt;/movie&gt;<br />&lt;/movies&gt;<br /></span><span style="color: #007700">XML;<br /><br /></span><span style="color: #0000BB">$movies </span><span style="color: #007700">= </span><span style="color: #0000BB">simplexml_load_string</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Namespace http://www.w3.org/XML/1998/namespace está disponível como "xml".<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">$movies</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">movie</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">attributes</span><span style="color: #007700">(</span><span style="color: #DD0000">"xml"</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">)[</span><span style="color: #DD0000">"id"</span><span style="color: #007700">] . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Atributos com namespace podem ser acessados com attributes().<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">$movies</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">movie</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">attributes</span><span style="color: #007700">(</span><span style="color: #DD0000">"a"</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">)[</span><span style="color: #DD0000">"link"</span><span style="color: #007700">] . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Usar URI com namespace permite ao documento usar qualquer sinônimo de namespace.<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">$movies</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">movie</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">attributes</span><span style="color: #007700">(</span><span style="color: #DD0000">"http://a"</span><span style="color: #007700">)[</span><span style="color: #DD0000">"link"</span><span style="color: #007700">] . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Filhos podem ser acessados com children().<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">$movies</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">movie</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">children</span><span style="color: #007700">(</span><span style="color: #DD0000">"http://a"</span><span style="color: #007700">)-&gt;</span><span style="color: #0000BB">actor </span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Usar xpath() com namespace requer que ele seja registrado primeiro.<br /></span><span style="color: #0000BB">$movies</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">registerXPathNamespace</span><span style="color: #007700">(</span><span style="color: #DD0000">"a"</span><span style="color: #007700">, </span><span style="color: #DD0000">"http://a"</span><span style="color: #007700">);<br />echo </span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$movies</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">xpath</span><span style="color: #007700">(</span><span style="color: #DD0000">"//a:actor"</span><span style="color: #007700">)) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Mesmo o namespace padrão precisa ser registrado.<br /></span><span style="color: #0000BB">$movies</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">registerXPathNamespace</span><span style="color: #007700">(</span><span style="color: #DD0000">"default"</span><span style="color: #007700">, </span><span style="color: #DD0000">"http://default"</span><span style="color: #007700">);<br />echo </span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$movies</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">xpath</span><span style="color: #007700">(</span><span style="color: #DD0000">"//default:movie"</span><span style="color: #007700">)) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Isto é vazio.<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$movies</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">xpath</span><span style="color: #007700">(</span><span style="color: #DD0000">"//movie"</span><span style="color: #007700">)) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

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