Есть код для формирования XML:
<?php
include ('выбор.html');
$coord = "";
$data = "";
if (isset($_POST['submit'])){
include ($_POST['files']);
$kml = new SimpleXMLElement($xmlstr);
echo '<plaintext>';
foreach ($kml->Document->Folder->Placemark as $Placemark) {
$coord = $Placemark->MultiGeometry->Polygon->outerBoundaryIs->LinearRing->coordinates;
$name = $Placemark->ExtendedData->SchemaData->SimpleData->attributes()->name;
echo '<Placemark>
<description>';
echo $name;
Echo '</description>
<styleUrl>#fillColor:ed454366_strokeColor:793d0ee6_strokeWidth:2</styleUrl>
<Polygon>
<outerBoundaryIs>
<LinearRing>
<coordinates>';
echo $coord;
echo '</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</Placemark>';
}
}
?>
XML:
<?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document id="root_doc">
<Folder><name>6</name>
<Placemark>
<ExtendedData><SchemaData schemaUrl="#6">
<SimpleData name="TITLE">г.Солигорск, ул.Октябрьская,25</SimpleData>
<SimpleData name="VISIBLE">1</SimpleData>
<SimpleData name="DESCRIPTIO">ЖЭС-6</SimpleData>
<SimpleData name="TYPEID">0</SimpleData>
<SimpleData name="SHAPE_Leng">553.00108356300</SimpleData>
<SimpleData name="SHAPE_Area">15164.38080050000</SimpleData>
</SchemaData></ExtendedData>
<MultiGeometry><Polygon><outerBoundaryIs><LinearRing><coordinates>27.5294768971866,52.7932506626974 27.5290725654772,52.7931310488117 27.5286866492311,52.7935653401639 27.5286862993214,52.7935657631828 27.5285590884608,52.7937183052913 27.5286502674621,52.7937507342637 27.5283551708913,52.7940913728134 27.5284276005954,52.7941121112508 27.5285118158128,52.7941040015074 27.5289502303265,52.7942374467774 27.5296709681812,52.7934368295137 27.5297880805909,52.7933031823304 27.5297026618576,52.7933121071567 27.5294768971866,52.7932506626974</coordinates></LinearRing></outerBoundaryIs></Polygon></MultiGeometry>
</Placemark>
</Folder>
</Document>
</kml>
Тут пытаюсь получить значения атрибутов SimpleData
: $name = $Placemark->ExtendedData->SchemaData->SimpleData->attributes()->name;
Но в итоге получаю только название. т.е. TITLE
подскажите как вытащить значение, а не название.
foreach ($Placemark->ExtendedData->SchemaData->SimpleData as $SimpleData) {
switch((string) $SimpleData['name']) { // Получение атрибутов элемента по индексу
case 'TITLE':
echo SimpleData;
break;
case 'DESCRIPTIO':
echo $SimpleData;
break;
}
}
Как то так. Не получалось сразу, т.к. не мог правильно сделать foreach
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Может кто-нибудь подскажет, как добавить в форму обратной связи, загрузку файла, чтобы этот файл на почту приходил вместе с заявкой?
Есть массив данных, полученный изini файла и переведенный в JSON, такого вида: