gpt4 book ai didi

javascript - 在 PHP 中读取 KML 文件,将其强制写入一行,然后使用 Google map 的 parseKMLString 对其进行解析

转载 作者:行者123 更新时间:2023-12-03 11:45:47 32 4
gpt4 key购买 nike

我正在尝试用 PHP 解析 KML 文件并使用 JavaScript 解析它。到目前为止我已经尝试了不同的方法。我的问题是,我似乎无法删除“xml”中的每个换行符。使用以下方法,我可以将所有 XML 强制放在一行中,但无法从“<![CDATA[....”中删除空格

$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 来显示 map 。 KML 文件本身是一个普通的 Google-Maps-KML 文件。

最佳答案

preg_replace 中的正则表达式正在查找特定的空白字符字符串:

preg_replace("/\r\n\t+/","",$string);

我相当确定您想要查找这些字符中的任何一个,即

preg_replace("/[\r\n\t+]/", "", $string);

您还可以将 str_replace 与您要查找的空白实体数组一起使用:

$ws = array("\r", "\n", "\t");
$newstr = str_replace($ws, "", $string);

除非速度是一个问题,否则正则表达式更加灵活。

关于javascript - 在 PHP 中读取 KML 文件,将其强制写入一行,然后使用 Google map 的 parseKMLString 对其进行解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26056714/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com