<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Phaneronsoft &#187; XML</title>
	<atom:link href="http://www.phaneronsoft.com/phaneronsoft/category/xml/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phaneronsoft.com/phaneronsoft</link>
	<description>Desenvolvimento Web</description>
	<lastBuildDate>Fri, 15 Jul 2011 20:15:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Sistema e manual para Calcular Frete SEDEX, e-SEDEX e PAC dos Correios  (versão 1.1)</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2010/02/08/sistema-para-calcular-frete-sedex-e-pac-1-1-pac-esta-funcionando/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2010/02/08/sistema-para-calcular-frete-sedex-e-pac-1-1-pac-esta-funcionando/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 14:01:33 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[Ferramentas]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[CEP]]></category>
		<category><![CDATA[correios]]></category>
		<category><![CDATA[Frete]]></category>
		<category><![CDATA[manual]]></category>
		<category><![CDATA[PAC]]></category>
		<category><![CDATA[Sedex]]></category>
		<category><![CDATA[webservice]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=427</guid>
		<description><![CDATA[Desde semana passada o antigo webservice dos correios parou de funcionar com PAC. Foi feita a correção do código e agora o PAC esta funcionando novamente. Sistema para Calcular Frete 1.1 Documentação para utilizar o webservice dos Correios para efetuar o calculo de forma personalizada. SCPP_Manual_Implementacao_Calculo_Remoto_de_Precos_e_Prazos Abaixo segue o código para manipular os dados do [...]]]></description>
			<content:encoded><![CDATA[<p>Desde semana passada o antigo webservice dos correios parou de funcionar com PAC.<br />
Foi feita a correção do código e agora o PAC esta funcionando novamente.</p>
<p><a title="Sistema para calcular Frete" href="http://www.phaneronsoft.com/phaneronsoft/2009/05/28/sistema-para-calcular-frete-sedex-e-pac-a-partir-de-cep-informado/" target="_self">Sistema para Calcular Frete 1.1</a></p>
<p>Documentação para utilizar o webservice dos Correios para efetuar o calculo de forma personalizada.</p>
<p><a href="http://www.phaneronsoft.com/phaneronsoft/wp-content/uploads/2010/02/SCPP_Manual_Implementacao_Calculo_Remoto_de_Precos_e_Prazos.pdf">SCPP_Manual_Implementacao_Calculo_Remoto_de_Precos_e_Prazos</a></p>
<p>Abaixo segue o código para manipular os dados do webservice usando o PHP.</p>
<p><a title="Webservice Correios" href="http://www.phaneronsoft.com/exemplos/webservice_correio/correio.php" target="_blank">Segue o exemplo do código abaixo funcionando.</a></p>
<pre class="brush: php">
&lt;?php
/**
* Faz consulta no webservice dos correios e gera array dos valores.
* @copyright  Phaneronsoft
* @author Marcelo Korjenioski - faleconosco@phaneronsoft.com
* @see http://www.phaneronsoft.com
* @filesource correios.php
* @version 1.0
*/

// PESO: Peso total do pacote em Quilos, caso seja menos de 1Kg, ex.: 300g, coloque 0.300
define(&#039;PESO&#039;,0.300);
// COMPRIMENTO: comprimento do volume em centímetros - somente número de 16 a 60
define(&#039;COMPRIMENTO&#039;,30);
// ALTURA: altura do volume em centímetros - somente número de 2 a 60
define(&#039;ALTURA&#039;,15);
// LARGURA: largura do volume em centimetros - somente número de 5 a 60
define(&#039;LARGURA&#039;,20);
// CODIGO_SERVICO: É possivel fazer mais de uma consulta ao mesmo tempo, basta separar os códigos por virgula.
// Neste caso PAC 41106 e SEDEX 40010
define(&#039;CODIGO_SERVICO&#039;,&#039;41106,40010&#039;);
// CEP_ORIGEM: seu CEP com 8 dígitos - somente números
define(&#039;CEP_ORIGEM&#039;,&#039;81010210&#039;);
// CEP_DESTINO: CEP do seu cliente com 8 dígitos - somente números
define(&#039;CEP_DESTINO&#039;,&#039;60245965&#039;);

// Crio um objeto para manipular o XML.
$doc = new DomDocument;
// Carrega o arquivo XML com um arquivo DOMDocument
$doc-&gt;Load(&quot;http://shopping.correios.com.br/wbm/shopping/script/CalcPrecoPrazo.aspx?StrRetorno=xml&amp;amp;nCdServico=&quot; . CODIGO_SERVICO . &quot;&amp;amp;nVlPeso=&quot; . PESO . &quot;&amp;amp;sCepOrigem=&quot; . CEP_ORIGEM . &quot;&amp;amp;sCepDestino=&quot; . CEP_DESTINO . &quot;&amp;amp;nCdFormato=1&amp;amp;nVlComprimento=&quot; . COMPRIMENTO . &quot;&amp;amp;nVlAltura=&quot; . ALTURA . &quot;&amp;amp;nVlLargura=&quot; . LARGURA);
// Defino o nome do elemento pai (root).
$root = $doc-&gt;getElementsByTagName(&#039;cServico&#039;);

// Carrega o arquivo XML com um arquivo DOMDocument
$correios = &quot;http://shopping.correios.com.br/wbm/shopping/script/CalcPrecoPrazo.aspx?StrRetorno=xml&amp;amp;nCdServico=&quot; . CODIGO_SERVICO . &quot;&amp;amp;nVlPeso=&quot; . PESO . &quot;&amp;amp;sCepOrigem=&quot; . CEP_ORIGEM . &quot;&amp;amp;sCepDestino=&quot; . CEP_DESTINO . &quot;&amp;amp;nCdFormato=1&amp;amp;nVlComprimento=&quot; . COMPRIMENTO . &quot;&amp;amp;nVlAltura=&quot; . ALTURA . &quot;&amp;amp;nVlLargura=&quot; . LARGURA;
// Defino o nome do elemento pai (root).
$root = $doc-&gt;getElementsByTagName(&#039;cServico&#039;);

// Defino o nome dos elementos filhos no arquivo XML que eu desejo.
$children = array(&#039;Valor&#039;,&#039;PrazoEntrega&#039;);

// Faço um loop para pegar todos os elementos pai (root) encontrados.
$valor = array();
for ($i=0; $i &lt; $root-&gt;length; $i++) {
// Pega o valor do atributo do elemento pai  (root).
    $id =  $root-&gt;item($i)-&gt;getElementsByTagName(&#039;Codigo&#039;)-&gt;item(0)-&gt;nodeValue;

// Busca por elementos filhos (child) definidos no array
    foreach ($children as $child) {
        $valor[$id][$child] = $root-&gt;item($i)-&gt;getElementsByTagName($child)-&gt;item(0)-&gt;nodeValue;
    }
}
echo &#039;&lt;pre&gt;&#039;;
var_dump($valor);
</pre>
<p>Caso tenha alguma duvida deixe um comen­tá­rio que terei pra­zer em aju­dar.<br />
Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2010/02/08/sistema-para-calcular-frete-sedex-e-pac-1-1-pac-esta-funcionando/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Converter XML para arquivo CSV — XML2CSV</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/05/28/converter-xml-para-arquivo-csv-xml2csv/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/05/28/converter-xml-para-arquivo-csv-xml2csv/#comments</comments>
		<pubDate>Thu, 28 May 2009 14:21:24 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[CSV]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=188</guid>
		<description><![CDATA[Atendendo a solicitação de um visitante do blog criei este tutorial com os princípios básicos para converter um arquivo XML em CSV. Crie um arquivo com o nome produtos.xml e insira o código abaixo. &#60;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34; standalone=&#34;no&#34;?&#62; &#60;catalogo&#62; &#60;produto id=&#039;p1&#039;&#62; &#60;nome&#62;Caderno&#60;/nome&#62; &#60;preco&#62;2,00&#60;/preco&#62; &#60;quantidade&#62;100&#60;/quantidade&#62; &#60;/produto&#62; &#60;produto id=&#039;p2&#039;&#62; &#60;nome&#62;Caneta&#60;/nome&#62; &#60;preco&#62;1,00&#60;/preco&#62; &#60;quantidade&#62;200&#60;/quantidade&#62; &#60;/produto&#62; &#60;produto id=&#039;p3&#039;&#62; &#60;nome&#62;Lapis&#60;/nome&#62; &#60;preco&#62;0,50&#60;/preco&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Atendendo a solicitação de um visitante do blog criei este tutorial com os princípios básicos para converter um arquivo XML em CSV.</p>
<p>Crie um arquivo com o nome produtos.xml e insira o código abaixo.</p>
<pre class="brush: xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
&lt;catalogo&gt;
&lt;produto id=&#039;p1&#039;&gt;
&lt;nome&gt;Caderno&lt;/nome&gt;
&lt;preco&gt;2,00&lt;/preco&gt;
&lt;quantidade&gt;100&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;produto id=&#039;p2&#039;&gt;
&lt;nome&gt;Caneta&lt;/nome&gt;
&lt;preco&gt;1,00&lt;/preco&gt;
&lt;quantidade&gt;200&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;produto id=&#039;p3&#039;&gt;
&lt;nome&gt;Lapis&lt;/nome&gt;
&lt;preco&gt;0,50&lt;/preco&gt;
&lt;quantidade&gt;50&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;produto id=&#039;p4&#039;&gt;
&lt;nome&gt;Livro Matematica&lt;/nome&gt;
&lt;preco&gt;11,00&lt;/preco&gt;
&lt;quantidade&gt;10&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;produto id=&#039;p5&#039;&gt;
&lt;nome&gt;Apontador&lt;/nome&gt;
&lt;preco&gt;1,00&lt;/preco&gt;
&lt;quantidade&gt;20&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;/catalogo&gt;
</pre>
<p>É necessário criar um diretório com o nome csv e dar permissão de leitura e escrita antes de executar o código.</p>
<p>Crie um arquivo com nome xml2csv.php e coloque o código abaixo.</p>
<pre class="brush: php">
&lt;?php

$doc = new DomDocument;
// Carrega o arquivo XML com um arquivo DOMDocument
$doc-&gt;Load(&#039;produtos.xml&#039;);
// Defino o nome do elemento pai (root).
$root = $doc-&gt;getElementsByTagName(&#039;produto&#039;);
// Defino o nome dos elementos filhos no arquivo XML que eu desejo.
$children = array(&#039;nome&#039;,&#039;preco&#039;,&#039;quantidade&#039;);
$cvs = NULL;
// Crio o cabeçalho do arquivo CSV com o nome de todos os campos.
$cvs .= &quot;codigo,nome,preco,quantidade&quot;;
// Quebra de linha do arquivo CSV.
$cvs .= &quot;\n&quot;;

// Faço um loop para pegar todos os elementos pai (root) encontrados.
for ($i=0; $i &lt; $root-&gt;length; $i++) {

// Pega o valor do atributo do elemento pai  (root).
$id =  $root-&gt;item($i)-&gt;getAttribute(&#039;id&#039;);
// Irei dar um escape em todos os valores usando aspas duplas.
$cvs .= &#039;&quot;&#039; . $id . &#039;&quot;,&#039;;
// Busca por elementos filhos (child) definidos no array
$valor = array();
foreach ($children as $child) {
$valor[] = &#039;&quot;&#039; . $root-&gt;item($i)-&gt;getElementsByTagName($child)-&gt;item(0)-&gt;nodeValue . &#039;&quot;&#039;;
}
// Uso o implode para criar uma string com os valores separados por vírgula.
$cvs .= implode(&#039;,&#039;, $valor);
// Quebra de linha do arquivo CSV.
$cvs .=&quot;\n&quot;;
}

// getcwd() retorna o diretório atual.
$caminho = getcwd(). &#039;/csv/&#039;;
$data = date(&#039;d_m_y_H_i_s&#039;);
$file_path = $caminho.$data.&#039;_lista.csv&#039;;

// Verifique se vc tem permissão de leitura e escrita neste diretorio
if(fwrite($file=fopen($file_path,&#039;w+&#039;),$cvs)) {
fclose($file);
echo &quot;Arquivo gravado com sucesso!&quot;;
} else {
echo &quot;Erro ao abrir arquivo!&quot;;
}

?&gt;
</pre>
<p>Caso tenha alguma duvida deixe um comentário que terei prazer em ajudar.<br />
Comentários são bem vindos assim posso melhorar a qualidade dos tutoriais aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/05/28/converter-xml-para-arquivo-csv-xml2csv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Estrutura básica de um arquivo XML.</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/05/26/estrutura-basica-de-um-arquivo-xml/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/05/26/estrutura-basica-de-um-arquivo-xml/#comments</comments>
		<pubDate>Tue, 26 May 2009 13:39:13 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=182</guid>
		<description><![CDATA[Estrutura básica de um arquivo XML. A primeira linha é o cabeçalho do arquivo XML. Neste caso estou usando o encoding UTF-8. Os documentos XML tem um estrutura em árvore. Todos os arquivos XML sempre terão um elemento raiz (root element). Este elemento é o pai dos outros elementos. Os elementos a seguir são os [...]]]></description>
			<content:encoded><![CDATA[<p>Estrutura básica de um arquivo XML.</p>
<p>A primeira linha é o cabeçalho do arquivo XML.<br />
Neste caso estou usando o encoding UTF-8.<br />
Os documentos XML tem um estrutura em árvore.</p>
<p>Todos os arquivos XML sempre terão um elemento raiz (root element).<br />
Este elemento é o pai dos outros elementos.<br />
Os elementos a seguir são os filhos (child element).</p>
<p>Exemplo da estrutura básica de um arquivo XML.</p>
<pre class="brush: xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;root&gt;
&lt;child&gt;
&lt;/child&gt;
&lt;/root&gt;
</pre>
<p>Dentro da tag dos elementos é possível definir atributos.<br />
Neste exemplo o nome do atributo criado é o id do produto.</p>
<pre class="brush: xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;catalogo&gt;
&lt;produto id=&#039;p1&#039;&gt;
&lt;nome&gt;Caderno&lt;/nome&gt;
&lt;preco&gt;2,00&lt;/preco&gt;
&lt;quantidade&gt;100&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;produto id=&#039;p2&#039;&gt;
&lt;nome&gt;Caneta&lt;/nome&gt;
&lt;preco&gt;1,00&lt;/preco&gt;
&lt;quantidade&gt;200&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;produto id=&#039;p3&#039;&gt;
&lt;nome&gt;Lapis&lt;/nome&gt;
&lt;preco&gt;0,50&lt;/preco&gt;
&lt;quantidade&gt;50&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;/catalogo&gt;
</pre>
<p>Caso tenha alguma duvida deixe um comentário que terei prazer em ajudar.<br />
Comentários são bem vindos assim posso melhorar a qualidade dos tutoriais aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/05/26/estrutura-basica-de-um-arquivo-xml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gravar arquivos de log ao executar comandos SQL no PHP.</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/05/23/gravar-arquivos-de-log-ao-executar-comandos-sql-no-php/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/05/23/gravar-arquivos-de-log-ao-executar-comandos-sql-no-php/#comments</comments>
		<pubDate>Sat, 23 May 2009 16:40:41 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=175</guid>
		<description><![CDATA[No código a seguir segue um exemplo de como ler um arquivo XML e gravar os dados no banco de dados MySQLe gerar um log da query executada. Neste exemplo costa apenas as funções de INSERT, DELETE, UPDATE e SELECT. Para facilitar a vida eu já deixei no código as query para criar o banco [...]]]></description>
			<content:encoded><![CDATA[<p>No código a seguir segue um exemplo de como ler um arquivo XML e gravar os dados no banco de dados MySQLe gerar um log da query executada.<br />
Neste exemplo costa apenas as funções de INSERT, DELETE, UPDATE e SELECT.<br />
Para facilitar a vida eu já deixei no código as query para criar o banco e as tabelas utilizadas para executar o código. Eu deixei os valores default de conexão com o MySQL altere os dados da conexão caso esteja usando outra configuração.<br />
A idéia de criar um log das querys executadas no sistema servem para detectar erros e também como um registro caso alguem valor tenha sito movimentado de forma errada.</p>
<pre class="brush: php">
&lt;?php
// Fazendo a conexão com o servidor MySQL

//Caso queira apenas criar o arquivo XML mude valor para false.
$ativar_conexao = true;

if ($ativar_conexao == true) {
// mysql_pconnect(&quot;server&quot;, &quot;login&quot;, &quot;senha&quot;)
$conexao = mysql_pconnect(&quot;192.168.1.210&quot;,&quot;root&quot;,&quot;dj@jdl#.&quot;) or die(&#039;falha ao conectar&#039;);
// Verifica se o banco de dados existe antes de criar.
$query = &#039;CREATE DATABASE IF NOT EXISTS test&#039;;

if(!mysql_query($query,$conexao)) {
echo &#039;falha ao criar banco&lt;br /&gt;&#039;;
}

mysql_select_db(&quot;test&quot;,$conexao) or die(&#039;falha ao selecionar db&#039;);

// Verifica se a tabela existe antes de criar.
$query = &quot;CREATE TABLE  IF NOT EXISTS tb_produtos (
pk_produtos int not null auto_increment primary key,
codigo     varchar(255),
nome       varchar(255),
preco      decimal(12,2),
quantidade int(11))&quot;;

if(!mysql_query($query,$conexao)) {
echo &#039;falha ao criar tabela&lt;br /&gt;&#039;;
}
}
// Fim comentario

$doc = new DomDocument;
// Carrega o arquivo XML com um arquivo DOMDocument
$doc-&gt;Load(&#039;produtos.xml&#039;);
$items = $doc-&gt;getElementsByTagName(&#039;produto&#039;);
// Defino o nome tags no arquivo XML que eu desejo.
$campos = array(&#039;nome&#039;,&#039;preco&#039;,&#039;quantidade&#039;);
$query = NULL;
$query .= &quot;insert into tb_produtos (codigo,nome,preco,quantidade) values &quot;;
for ($i=0; $i &lt; $items-&gt;length; $i++) {
$value = NULL;
$value .= &quot; (&quot;;
$codigo = $items-&gt;item($i)-&gt;getAttribute(&#039;id&#039;);
$value .= &quot;&#039;$codigo&#039;,&quot;;
echo $items-&gt;item($i)-&gt;getAttribute(&#039;id&#039;) , &#039;&lt;br /&gt;&#039;;
// Busca por elementos definidos no array
$valor = array();
foreach ($campos as $campo) {
$dado = &quot;&#039;&quot; . $items-&gt;item($i)-&gt;getElementsByTagName($campo)-&gt;item(0)-&gt;nodeValue . &quot;&#039;&quot;;
// Verifico se o campo é preco pq no arquivo xml o preço esta com virgula e para inserir no banco é necessario ponto
if($campo == &#039;preco&#039;) {
// Faz a troca de virgula por ponto.
$dado = str_replace(&#039;,&#039;,&#039;.&#039;,$dado);
}
// pego o valor de cada tag e adiciono em um array para fazer o insert no banco.
$valor[] = $dado;
echo $items-&gt;item($i)-&gt;getElementsByTagName($campo)-&gt;item(0)-&gt;tagName , &#039;: &#039;;
echo $items-&gt;item($i)-&gt;getElementsByTagName($campo)-&gt;item(0)-&gt;nodeValue , &#039;&lt;br /&gt;&#039;;

}
// uso o implode para criar uma string com os valores separados por vírgula.
$value .= implode(&#039;,&#039;, $valor);
$value .= &#039;) &#039;;
// Adiciono os dados do valores do insert em array.
$values[] = $value;

echo &#039;&lt;hr&gt;&#039;;
}
// uso o implode para criar uma string com os valores separados por vírgula.
$query .= implode(&#039;,&#039;, $values);

// mostra a query criada na tela.
echo $query;

if ($ativar_conexao == true) {

// GRAVA LOG do arquivo executado mesmo se query estiver errada.
if((stristr($query, &#039;DELETE&#039;) || stristr($query, &#039;UPDATE&#039;) || stristr($query, &#039;INSERT&#039;)  || stristr($query, &#039;SELECT&#039;))) {

// Verifica se a tabela existe antes de criar.
$query_log = &quot;CREATE TABLE IF NOT EXISTS tb_log (
pk_log int not null auto_increment primary key,
tx_sql text,
acao ENUM(&#039;DELETE&#039;, &#039;UPDATE&#039;, &#039;INSERT&#039;,&#039;SELECT&#039;)
);&quot;;

if(!mysql_query($query_log,$conexao)) {
echo &#039;falha ao criar tabela&lt;br /&gt;&#039;;
}

if(stristr($query, &#039;DELETE&#039;)) {
$acao = 1;
} elseif(stristr($query, &#039;UPDATE&#039;)) {
$acao = 2;
} elseif(stristr($query, &#039;INSERT&#039;)) {
$acao = 3;
} elseif(stristr($query, &#039;SELECT&#039;)) {
$acao = 4;
}

$query_log = &quot;INSERT INTO tb_log (tx_sql,acao) VALUES
(\&quot;$query\&quot;,$acao)&quot;;

if(!mysql_query($query_log,$conexao)) {
echo &#039;falha ao inserir dados de log&lt;br /&gt;&#039;;
}

}

if(!mysql_query($query,$conexao)) {
echo &#039;falha ao inserir dados&lt;br /&gt;&#039;;
}
}
</pre>
<p>Crie um arquivo produtos.xml em um editor de texto e coloque o código abaixo.</p>
<pre class="brush: xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
&lt;catalogo&gt;
&lt;produto id=&#039;p1&#039;&gt;
&lt;nome&gt;Caderno&lt;/nome&gt;
&lt;preco&gt;2,00&lt;/preco&gt;
&lt;quantidade&gt;100&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;produto id=&#039;p2&#039;&gt;
&lt;nome&gt;Caneta&lt;/nome&gt;
&lt;preco&gt;1,00&lt;/preco&gt;
&lt;quantidade&gt;200&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;produto id=&#039;p3&#039;&gt;
&lt;nome&gt;Lapis&lt;/nome&gt;
&lt;preco&gt;0,50&lt;/preco&gt;
&lt;quantidade&gt;50&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;produto id=&#039;p4&#039;&gt;
&lt;nome&gt;Livro Matematica&lt;/nome&gt;
&lt;preco&gt;11,00&lt;/preco&gt;
&lt;quantidade&gt;10&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;produto id=&#039;p5&#039;&gt;
&lt;nome&gt;Apontador&lt;/nome&gt;
&lt;preco&gt;1,00&lt;/preco&gt;
&lt;quantidade&gt;20&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;/catalogo&gt;
</pre>
<p>Caso tenha alguma duvida deixe um comentário que terei prazer em ajudar.<br />
Comentários são bem vindos assim posso melhorar a qualidade dos tutoriais aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/05/23/gravar-arquivos-de-log-ao-executar-comandos-sql-no-php/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Importar arquivo XML usando PHP e inserindo em BD MySQL.</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2008/10/17/importar-arquivo-xml-usando-php-e-inserindo-em-bd-mysql/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2008/10/17/importar-arquivo-xml-usando-php-e-inserindo-em-bd-mysql/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 17:06:26 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=97</guid>
		<description><![CDATA[Crie um arquivo chamado produtos.xml e insira o código abaixo. &#60;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34; standalone=&#34;no&#34;?&#62; &#60;catalogo&#62; &#60;produto id=&#039;p1&#039;&#62; &#60;nome&#62;Caderno&#60;/nome&#62; &#60;preco&#62;2,00&#60;/preco&#62; &#60;quantidade&#62;100&#60;/quantidade&#62; &#60;/produto&#62; &#60;produto id=&#039;p2&#039;&#62; &#60;nome&#62;Caneta&#60;/nome&#62; &#60;preco&#62;1,00&#60;/preco&#62; &#60;quantidade&#62;200&#60;/quantidade&#62; &#60;/produto&#62; &#60;produto id=&#039;p3&#039;&#62; &#60;nome&#62;Lapis&#60;/nome&#62; &#60;preco&#62;0,50&#60;/preco&#62; &#60;quantidade&#62;50&#60;/quantidade&#62; &#60;/produto&#62; &#60;produto id=&#039;p4&#039;&#62; &#60;nome&#62;Livro Matematica&#60;/nome&#62; &#60;preco&#62;11,00&#60;/preco&#62; &#60;quantidade&#62;10&#60;/quantidade&#62; &#60;/produto&#62; &#60;produto id=&#039;p5&#039;&#62; &#60;nome&#62;Apontador&#60;/nome&#62; &#60;preco&#62;1,00&#60;/preco&#62; &#60;quantidade&#62;20&#60;/quantidade&#62; &#60;/produto&#62; &#60;/catalogo&#62; Crie um arquivo chamado inporta.php e insira o [...]]]></description>
			<content:encoded><![CDATA[<p>Crie um arquivo chamado produtos.xml e insira o código abaixo.</p>
<pre class="brush: xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
&lt;catalogo&gt;
&lt;produto id=&#039;p1&#039;&gt;
&lt;nome&gt;Caderno&lt;/nome&gt;
&lt;preco&gt;2,00&lt;/preco&gt;
&lt;quantidade&gt;100&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;produto id=&#039;p2&#039;&gt;
&lt;nome&gt;Caneta&lt;/nome&gt;
&lt;preco&gt;1,00&lt;/preco&gt;
&lt;quantidade&gt;200&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;produto id=&#039;p3&#039;&gt;
&lt;nome&gt;Lapis&lt;/nome&gt;
&lt;preco&gt;0,50&lt;/preco&gt;
&lt;quantidade&gt;50&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;produto id=&#039;p4&#039;&gt;
&lt;nome&gt;Livro Matematica&lt;/nome&gt;
&lt;preco&gt;11,00&lt;/preco&gt;
&lt;quantidade&gt;10&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;produto id=&#039;p5&#039;&gt;
&lt;nome&gt;Apontador&lt;/nome&gt;
&lt;preco&gt;1,00&lt;/preco&gt;
&lt;quantidade&gt;20&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;/catalogo&gt;
</pre>
<p>Crie um arquivo chamado inporta.php e insira o código abaixo.</p>
<pre class="brush: php">
&lt;?php
// Fazendo a conexão com o servidor MySQL

//Caso queira apenas criar o arquivo XML e gerar uma query sem inserir no banco
// mude valor de $ativar_conexao para false.
$ativar_conexao = true;

if ($ativar_conexao == true) {
$conexao = mysql_pconnect(&quot;localhost&quot;,&quot;root&quot;,&quot;&quot;) or die(&#039;falha ao conectar&#039;);
$query = &#039;CREATE DATABASE loja&#039;;

if(!mysql_query($query,$conexao)) {
echo &#039;falha ao criar banco&lt;br /&gt;&#039;;
}

mysql_select_db(&quot;test&quot;,$conexao) or die($msg[1]);

$query = &quot;CREATE TABLE produtos (
codigo     varchar(10),
nome       varchar(255),
preco      varchar(50),
quantidade varchar(50)&quot;;

if(!mysql_query($query,$conexao)) {
echo &#039;falha ao criar tabela&lt;br /&gt;&#039;;
}
}
// Fim comentario

$doc = new DomDocument;
// Carrega o arquivo XML com um arquivo DOMDocument
$doc-&gt;Load(&#039;produtos.xml&#039;);
$items = $doc-&gt;getElementsByTagName(&#039;produto&#039;);
$campos = array(&#039;nome&#039;,&#039;preco&#039;,&#039;quantidade&#039;);
$query = NULL;
$query .= &quot;insert into produtos (codigo,nome,preco,quantidade) values &quot;;
for ($i=0; $i &lt; $items-&gt;length; $i++) {
$value = NULL;
$value .= &quot; (&quot;;
$codigo = $items-&gt;item($i)-&gt;getAttribute(&#039;id&#039;);
$value .= &quot;&#039;$codigo&#039;,&quot;;
echo $items-&gt;item($i)-&gt;getAttribute(&#039;id&#039;) , &#039;&lt;br /&gt;&#039;;
// Busca por elementos definidos no array
$valor = array();
foreach ($campos as $campo) {
$valor[] = &quot;&#039;&quot; . $items-&gt;item($i)-&gt;getElementsByTagName($campo)-&gt;item(0)-&gt;nodeValue . &quot;&#039;&quot;;
echo $items-&gt;item($i)-&gt;getElementsByTagName($campo)-&gt;item(0)-&gt;tagName , &#039;: &#039;;
echo $items-&gt;item($i)-&gt;getElementsByTagName($campo)-&gt;item(0)-&gt;nodeValue , &#039;&lt;br /&gt;&#039;;

}
$value .= implode(&#039;,&#039;, $valor);
$value .= &#039;) &#039;;
$values[] = $value;

echo &#039;&lt;hr&gt;&#039;;
}
$query .= implode(&#039;,&#039;, $values);

echo $query;

// Comente caso apenas queira gerar o codigo xml
if ($ativar_conexao == true) {
if(!mysql_query($query,$conexao)) {
echo &#039;falha ao inserir dados&lt;br /&gt;&#039;;
}
}
</pre>
<p>Caso tenha alguma duvida deixe um comentário que terei prazer em ajudar.<br />
Comentários são bem vindos assim posso melhorar a qualidade dos tutoriais aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2008/10/17/importar-arquivo-xml-usando-php-e-inserindo-em-bd-mysql/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

