0
我想解析PHP中的KML文件並使用JavaScript解析它。到目前爲止,我嘗試了不同的方法。我的問題是,我似乎無法從「xml」中刪除每一行換行符。用下面的方法,我可以強制所有XML在同一行,但未能從「<![CDATA[....
」閱讀PHP中的KML文件,強制它在一行中,解析它與parseKMLString谷歌地圖
$dom = new DOMDocument();
$dom->preserveWhitespaces = false;
$dom->load("FILE-URL goes here");
$xpath = new DOMXPath($dom);
foreach ($xpath->query('//text()') as $domText) {
$domText->data = trim(str_replace("\r\n","",$domText->nodeValue));
}
$dom->formatOutput = true;
$string = $dom->saveHTML();
刪除空格用我的下一個嘗試,我能夠一切轉換成字符串,但無法從刪除任何換行符它:
$xml = simplexml_load_file("FILE-URL goes here", 'SimpleXMLElement', LIBXML_NOCDATA);
$string = (string)$xml->asXML();
print_r(trim(preg_replace("/\r\n\t+/","",$string)));
卸下休息是必要的要執行下面的JS代碼:上
geoXml.parseKmlString('<?php print(STRING FROM ABOVE) ?>');
可惜我不能下載文件到服務器,所以我必須像上面的東西。此外,我不能使用PHP來顯示地圖。 KML文件本身是一個正常的Google-Maps-KML文件。
您的preg_replace正在查找確切的字符串'\ r \ n \ t +'。我認爲你想要尋找任何這些空白組合,即'/ [\ r \ n \ t +] /' – 2014-09-26 09:59:49
這就是簡單的事情......這確實是解決方案。唯一剩下的是,我需要找出如何將字符串放入'',因爲它包含「以及':) – 2014-09-26 10:06:34
您需要刪除字符串的所有實例」,因爲它包含「?您可以使用' str_replace'(見下面的答案)或者將字符串添加到你的正則表達式中:'/([\ r \ n \ t +] |因爲它包含)/' – 2014-09-26 10:08:42