PHP - Como actualizar un archivo xml atravez de php

 
Vista:

Como actualizar un archivo xml atravez de php

Publicado por german varas (2 intervenciones) el 25/10/2018 21:40:56
hola estoy en el siguiente problema
tengo un archivo xml

1
2
3
4
5
6
7
8
9
10
11
12
<markers>
  <marker numero="1" status="busy" lat="1.000000" lng="1.000000"/>
  <marker numero="2" status="busy" lat="-33.571178" lng="-70.547974"/>
  <marker numero="3" status="busy" lat="-33.574139" lng="-70.544342"/>
  <marker numero="4" status="busy" lat="-33.570461" lng="-70.548981"/>
  <marker numero="5" status="busy" lat="-33.570728" lng="-70.551186"/>
  <marker numero="6" status="busy" lat="-33.571606" lng="-70.548599"/>
  <marker numero="7" status="busy" lat="-33.571609" lng="-70.559486"/>
  <marker numero="8" status="busy" lat="-33.566650" lng="-70.558937"/>
  <marker numero="9" status="busy" lat="-33.568699" lng="-70.552025"/>
  <marker numero="10" status="busy" lat="-33.571297" lng="-70.554459"/>
</markers>

el cual quisiera hacerle un update al atributo lat mediante php
poseo las variables php
$lat=-33.771178; y
$longi= -70.554459;
de cada marker
quisiera poder actualizar los valores de este xml
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.463
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como actualizar un archivo xml atravez de php

Publicado por xve (6934 intervenciones) el 26/10/2018 07:34:37
Hola German, lo suyo, es vuelvas a generar el archivo con los valores correctos.

colocas todo el contenido XML en una variable, y luego guardas esa variable en el archivo, reemplazando el contenido que ya tienes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como actualizar un archivo xml atravez de php

Publicado por german varas (2 intervenciones) el 26/10/2018 14:26:28
ok entiendo lo que dices algo como que en mi php
genere una variable $xml="marker.... lat=$lat ...etc
pero como la envio a un xml nuevo ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.937
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como actualizar un archivo xml atravez de php

Publicado por kip (877 intervenciones) el 26/10/2018 23:44:18
Mira este ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$xmlString = <<<'XML'
<markers>
  <marker numero="1" status="busy" lat="1.000000" lng="1.000000"/>
  <marker numero="2" status="busy" lat="-33.571178" lng="-70.547974"/>
  <marker numero="3" status="busy" lat="-33.574139" lng="-70.544342"/>
  <marker numero="4" status="busy" lat="-33.570461" lng="-70.548981"/>
  <marker numero="5" status="busy" lat="-33.570728" lng="-70.551186"/>
  <marker numero="6" status="busy" lat="-33.571606" lng="-70.548599"/>
  <marker numero="7" status="busy" lat="-33.571609" lng="-70.559486"/>
  <marker numero="8" status="busy" lat="-33.566650" lng="-70.558937"/>
  <marker numero="9" status="busy" lat="-33.568699" lng="-70.552025"/>
  <marker numero="10" status="busy" lat="-33.571297" lng="-70.554459"/>
</markers>
XML;
 
$xmlObj = simplexml_load_string($xmlString);
 
foreach($xmlObj->xpath('/markers/marker') as $element) {
  $element->attributes()['lat'] = 500;
}
 
echo $xmlObj->asXML();

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0"?>
<markers>
  <marker numero="1" status="busy" lat="500" lng="1.000000"/>
  <marker numero="2" status="busy" lat="500" lng="-70.547974"/>
  <marker numero="3" status="busy" lat="500" lng="-70.544342"/>
  <marker numero="4" status="busy" lat="500" lng="-70.548981"/>
  <marker numero="5" status="busy" lat="500" lng="-70.551186"/>
  <marker numero="6" status="busy" lat="500" lng="-70.548599"/>
  <marker numero="7" status="busy" lat="500" lng="-70.559486"/>
  <marker numero="8" status="busy" lat="500" lng="-70.558937"/>
  <marker numero="9" status="busy" lat="500" lng="-70.552025"/>
  <marker numero="10" status="busy" lat="500" lng="-70.554459"/>
</markers>

Si te fijas yo le cambie el atributo 'lat' a todos los elementos 'marker', deberias tu introducir tu lógica para verificar exactamente que valores debes setear.

La doc http://php.net/manual/es/book.simplexml.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar