Загрузка файла KML в mysql / xpath и x quires - PullRequest
3 голосов
/ 17 марта 2011

привет, я столкнулся с несколькими проблемами при загрузке большого файла kml, я изначально использовал Cold Fusion, но он просто не может обработать большие файлы xml / kml

, поэтому я подумал, что id дает ему bash, используя php iЯ довольно новичок в php и coldfusion

, поэтому вы можете получить файл kmz, над которым я работал, начиная с http://marinetraffic2.aegean.gr/ais/getkml.aspx, вам придется переименовать его в .zip, а затем развернуть, там должен быть файл kml втам с именем doc.kml измените его на xml, и там вы получите Bom в начале, я нашел его в cfhttp и type = ut-8, затем удалил первые 3 символа

, теперьчасть, с которой у меня возникают проблемы - это загрузка xpath или любых запросов к нему

Я хотел бы поместить это в массив для работы, прежде чем поместить его в базу данных. Столбцы, которые мне нужны, это имякоординаты styleurl и описания

мне удалось получить это, но работать

$dom = new DomDocument();
$dom->load("http://localhost/testdocs/bigdoc.xml");
$titles = $dom->getElementsByTagName("coordinates");

foreach($titles as $node) {
   print $node->textContent . "<br> ";
}

это вернет список имен в XML-файле

, но это все из нихгоПуть, который мне нужен, был бы kml / Document / Folder / Placemark / (имя yada yada)

может кто-то со свежей парой глаз

бит в холодном синтезе просто висел там целую вечностьно когда я попробовал тот же гораздо меньший файл, он работал

, так что я новичок в php, но этот небольшой кусочек кода работает с большим файлом в отличие от Cold Fusion

Окей, главная проблема в том, что xpathsЗапросы / Папка

просто не работают. Я надеюсь, что вы можете понять мои разговоры

Спасибо за вашу помощь в продвинутом JC

1 Ответ

1 голос
/ 21 апреля 2011

DomDocument () очень дорого с точки зрения ресурсов. Я использую XMLReader () для анализа очень больших файлов XML (> 600 МБ) без проблем.

Ознакомьтесь с документацией: http://php.net/manual/en/book.xmlreader.php

...