Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript获取唯一的XML子节点_Javascript_Php_Xml_Codeigniter_Google Maps - Fatal编程技术网

使用Javascript获取唯一的XML子节点

使用Javascript获取唯一的XML子节点,javascript,php,xml,codeigniter,google-maps,Javascript,Php,Xml,Codeigniter,Google Maps,我是一个试图为我的Com构建地图的noob。掠夺。使用GoogleMapsAPI初始化 我有数据要作为标记和信息窗口输出 我使用Codeigniter从数据库输出XML。修改数据以保护隐私 <markers> <item0> <city>Boston</city> <latitude>0.01111</longitude> <longitude>1.2345

我是一个试图为我的Com构建地图的noob。掠夺。使用GoogleMapsAPI初始化

我有数据要作为标记和信息窗口输出

我使用Codeigniter从数据库输出XML。修改数据以保护隐私

<markers>
    <item0>
        <city>Boston</city>
        <latitude>0.01111</longitude>
        <longitude>1.2345</longitude>
    </item0>
    <item1>
        <city>Los Angeles</city>
        <latitude>9.99999</latitude>
        <longitude>2.00011</longitude>
    </item1>
</markers>
我认为主要的问题是,条目标记每个都包含一个唯一的编号,因此我无法使用getElementsByTagName方法调用它们

我已尝试修改items变量以获取markers标记的子节点:

var items = xml.documentElement.getElementsByTagName("markers").children;
但是控制台输出一个错误,其中items变量现在未定义


我还试图修改XML文件,但我似乎只能通过Codeigniter的内置助手输出XML。也许有一种方法可以在PHP7中创建一个我不知道的DOM文档?

我建议您使用它,它将允许您将所有元素拉到一个cetrain路径下,然后您可以像正常情况一样进行迭代。

如果您使用simplexml加载字符串将控制器中的XML转换为PHP,那么将更加容易数组或对象,然后使用json_编码将其转换为json格式,因此在JS代码中使用此json数组或对象将更容易。 在控制器中执行此操作并将其发送到视图:

json_encode(simplexml_load_string(your XML here), JSON_UNESCAPED_UNICODE);

下面是如何提取数据:请注意,如果改为以JSON输出,则整个转换代码将变得不必要
json_encode(simplexml_load_string(your XML here), JSON_UNESCAPED_UNICODE);