capturar os valores de um nó filho de uma arquivo XML
Ola pessoal,
Tenho um arquivo kml, extensão do google earth, codificada em xml. nesse arquivo tenho diferentes elementos do google. como Poligonos, marcadores e caminhos. cada polígono representa uma área com informações de quantidade de clientes, de acordo com a quantidade de cada área a cor muda ex: 10%=vermelho, 60%= verde, etc...
o que preciso fazer é um formulário onde o usuário vai indicar o nome da área e a porcentagem e via php, preciso acessar o arquivo kml e alterar no elemento indicado a cor dele de acordo com o padrão fixo. porém, estou com o seguinte problema, não consigo acessar um nó filho dentro do código xml. por exemplo: tenho no codigo xml o elemento <Document> dentro desse elemento tenho o nó <folder> dentro desse nó tenho outro que tambem se chama <folder> neste nó tenho um elemento <Placemarck>, o código que tenho ele acessa apenas o primeiro elemento no caso seria <document>, como faço para acessar os demais elementos do código xml?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Soltel</title> </head> <body> <h1>Soltel</h1> <?php $link = "kml/uberlandia.kml"; //link do arquivo xml $xml = simplexml_load_file($link);//carrega o arquivo XML e retornando um Array // print_r $xml; //var_dump($xml); //obs: neste ponto deveria acessar o elemento desejado. foreach($xml->Placemark as $Placemark){ echo $Placemark->name; echo $Placemark->styleUrl; } ?> </body> </html>
<code xml>
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="[http://www.opengis.net/kml/2.2"](http://www.opengis.net/kml/2.2) xmlns:gx="[http://www.google.com/kml/ext/2.2"](http://www.google.com/kml/ext/2.2) xmlns:kml="[http://www.opengis.net/kml/2.2"](http://www.opengis.net/kml/2.2) xmlns:atom="[http://www.w3.org/2005/Atom">](http://www.w3.org/2005/Atom%22)
<Document>
<name>UBERLÂNDIA.kml</name>
<StyleMap id="m_ylw-pushpin">
<Pair>
<key>normal</key>
<styleUrl>#s_ylw-pushpin0</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#s_ylw-pushpin_hl0</styleUrl>
</Pair>
</StyleMap>
<Folder>
<name>UBERLÂNDIA</name>
<open>1</open>
<Folder>
<name>AREA</name>
<open>1</open>
<Placemark>
<name>jardim holanda</name>
<styleUrl>#m_ylw-pushpin</styleUrl>
<Polygon>
<tessellate>1</tessellate>
<outerBoundaryIs>
<LinearRing>
<coordinates>
-48.32488777746115,-18.95959784475365,0 -48.32295861536939,-18.95929322524327,0 -48.32026405346004,-18.96352904573574,0 -48.31754942518452,-18.9665967776136,0 -48.31714072846297,-18.96665805302447,0 -48.3155376995926,-18.96656763591081,0 -48.31397776412899,-18.9664757646034,0 -48.31338294394784,-18.96634457250738,0 -48.31276911512214,-18.96613107482843,0 -48.31215336392997,-18.9655987807667,0 -48.31180539432194,-18.9650325341373,0 -48.31160030435869,-18.9643077285635,0 -48.31166765518667,-18.96064075494542,0 -48.30722885791366,-18.96045159254923,0 -48.31382253880895,-18.94886697414306,0 -48.32422865139704,-18.9506886200643,0 -48.32487875875525,-18.95103014922338,0 -48.32488777746115,-18.95959784475365,0
</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</Placemark>
</Folder>
</Folder>
</Document>
</code> código abreviado
se deixar apenas o elemento <Placemark> no documento funciona normalmente.Discussão (2)
Carregando comentários...