anoxia 1 Denunciar post Postado Outubro 27, 2008 Boa Tarde Galera! Comprei um livro, estou estudando a class DOMDocument mas estou com uma certa dificuldade em ler um XML do tipo abaixo com o PHP: <a:loja> <a:produtos> <a:produto codigo="1234">Carrinho de Brinquedo</a:produto> <a:cor>vermelho</a:vermelho> <a:preco>R$ 25,00</a:preco> </a:produtos> <a:produtos> <a:produto codigo="3214">Bola de Futebol</a:produto> <a:cor>preto</a:vermelho> <a:preco>R$ 15,00</a:preco> </a:produtos> <a:produtos> <a:produto codigo="4321">Pula-pula</a:produto> <a:cor>amarelo</a:vermelho> <a:preco>R$ 7,00</a:preco> </a:produtos> </a:loja> 1º Como posso pegar o valor do "codigo" do primeiro produto (Carrinho de Brinquedo)? 2º Como posso pegar o valor (R$ 25,00) da tag <a:preco> do primeiro prinquedo (Carrinho de Brinquedo)? 3º Como saber quantos elementos tem na tag <a:loja>? OBS.: Dou preferencia para DOMObject mas pode ser qualquer outro método Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Outubro 27, 2008 Poderia ser: <?xml version="1.0" encoding="ISO-8859-1"?> <estudos> <dado>Ola</dado> <dado>Alaerte Gabriel, você tem</dado> <dado>19 Anos</dado> <dado>e é do sexo Masculino</dado> </estudos> para ler: <?php //Carrego o arquivo XML $ver = simplexml_load_file('dados.xml'); print $ver->dado[0].'<br />'; print $ver->dado[1].'<br />'; print $ver->dado[2].'<br />'; print $ver->dado[3].'<br />'; ?> Compartilhar este post Link para o post Compartilhar em outros sites
anoxia 1 Denunciar post Postado Outubro 28, 2008 Eu sei como buscar dados em um XML sem prefixo, o problema é que o XML já está pronto, e está com prefixo tenho com buscar na estrutura que eu falei Compartilhar este post Link para o post Compartilhar em outros sites
Marcelo Alves_203189 0 Denunciar post Postado Julho 17, 2014 Eu tou com o mesmo problema Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Henrique da Costa 14 Denunciar post Postado Julho 17, 2014 Segue link: http://php.net/manual/pt_BR/simplexmlelement.getnamespaces.php Ai adapta de acordo como quiseres! Compartilhar este post Link para o post Compartilhar em outros sites
Marcelo Alves_203189 0 Denunciar post Postado Julho 17, 2014 valew Bruno mas já tentei mas ocorre este erro !! Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: Entity: line 3828: parser error : Start tag expected, '<' not found inC:\wamp\www\ampar\xml\LancamentosContabeis.php on line 4Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: in C:\wamp\www\ampar\xml\LancamentosContabeis.php on line 4Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: ^ in C:\wamp\www\ampar\xml\LancamentosContabeis.php on line 4Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in C:\wamp\www\ampar\xml\LancamentosContabeis.php:4 Stack trace: #0 C:\wamp\www\ampar\xml\LancamentosContabeis.php(4): SimpleXMLElement->__construct('? ? ? ? ? ...') #1 {main} thrown in C:\wamp\www\ampar\xml\LancamentosContabeis.php on line 4 Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Henrique da Costa 14 Denunciar post Postado Julho 17, 2014 Olha desisto kkk' Me desculpa mas também não achei uma solução pra isso, tópico ficara aberto e eu também irei acompanhar pra ver se alguém responde! Compartilhar este post Link para o post Compartilhar em outros sites
Marcelo Alves_203189 0 Denunciar post Postado Julho 17, 2014 simplexml_load_file("LancamentosContabeis.xml") or die ("erro"); será que existe um tamanho do arquivo estipulado no wamp pois o arquivo é 10 mega e quando eu coloquei "or die" ele mostra minha mensagem de erro como se não carregasse o arquivo! Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Falieri 6 Denunciar post Postado Julho 18, 2014 com prefixo não sei D; Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Julho 18, 2014 Difícil mesmo é tentar adivinhar como esta a estrutura de seu xml, o exemplo do post #1 é de 2008 esta totalmente errado, não é daquela forma que se estrutura namespace em xml um exemplo básico de com usar namespace seria desta forma. <?php $xml = <<<XML <?xml version="1.0" encoding="UTF-8"?> <people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test"> <items> <title>Name</title> <p:person id="1">John Doe</p:person> <p:person id="2">Susie Q. Public</p:person> <p:person id="3">Fish Man</p:person> </items> <price> <title>Price</title> <p:price id="1">5</p:price> <p:price id="2">10</p:price> <p:price id="3">15</p:price> </price> </people> XML; $sxe = new SimpleXMLElement($xml); foreach ($sxe as $out_ns) { $ns = $out_ns->getNamespaces(true); $child = $out_ns->children($ns['p']); foreach ($child as $out) { echo $out . "<br />"; } } Compartilhar este post Link para o post Compartilhar em outros sites
Marcelo Alves_203189 0 Denunciar post Postado Julho 18, 2014 meu xml nao foi eu que criei e sim próprio sagres pi agora 14/07/2014, apenas vou transcrever os dados para mysql. Consegui obrigado a todos ! Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Henrique da Costa 14 Denunciar post Postado Julho 18, 2014 Manda como voce conseguiu Marcelo, porque outros tem o mesmo problema e muitos não conseguiram resolver, inclusive eu rs tem como? Compartilhar este post Link para o post Compartilhar em outros sites
Marcelo Alves_203189 0 Denunciar post Postado Julho 18, 2014 tá aí a demostração <?php $arquivo = file_get_contents("LancamentosContabeis.xml"); $xml = new SimpleXMLElement($arquivo); $namespaces = $xml->getNamespaces(true); foreach ($xml->children($namespaces["lan"]) as $dados) { echo $dados->numeroRegiOuLancamento.'<br>'; echo $dados->historicoRegiContabil.'<br>'; } ?> o post do Williams Duarte resolve ! Compartilhar este post Link para o post Compartilhar em outros sites