使用Javascript获取唯一的XML子节点
我是一个试图为我的Com构建地图的noob。掠夺。使用GoogleMapsAPI初始化 我有数据要作为标记和信息窗口输出 我使用Codeigniter从数据库输出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
<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);