从DOM请求此元素的正确方法是什么?

从DOM请求此元素的正确方法是什么?,dom,gpx,Dom,Gpx,我正在从一个gpx文件中检索所有坐标,下面是该文件中的一个示例行 <gpxx:rpt lon="11.0739613" lat="47.5691700"/> 在IE和FireFox中,以下代码正确执行: var routePoints = data.documentElement.getElementsByTagName("gpxx:rpt"); for (var i = 0; i < routePoints.length; i++) { routePo

我正在从一个gpx文件中检索所有坐标,下面是该文件中的一个示例行

 <gpxx:rpt lon="11.0739613" lat="47.5691700"/>

在IE和FireFox中,以下代码正确执行:

var routePoints = data.documentElement.getElementsByTagName("gpxx:rpt");

for (var i = 0; i < routePoints.length; i++) 
 {
     routePoints[i].getAttribute("lat");
     routePoints[i].getAttribute("lon");
 }
var routePoints=data.documentElement.getElementsByTagName(“gpxx:rpt”);
对于(变量i=0;i
尽管奇怪的是,在Chrome上这段代码不起作用,但它似乎无法从DOM中检索任何信息

在我寻找解决方案的旅途中,我看到了“getElementsByTagNameNS(ns,name)”,但看看上面的示例,我还没有确定这是否对我有任何帮助

有什么建议吗

非常感谢


David

是的,您的文件正在使用名称空间,因此您应该使用此方法的名称空间感知版本

  • 如果您知道gpxx:前缀的名称空间,请使用:

    getelementsbytagnames(您的_名称空间,“rpt”)

  • 如果您的文件不使用包含rpt元素的任何其他名称空间,那么这就足够了:

    getelementsbytagnames(“*”,“rpt”)


谢谢@wrygiel,我试试看。我是否正确地认为,在这种情况下,基于下面的xml头,“your_namespace”应该是“”:否。“xmlns”属性为没有任何前缀的元素定义名称空间。您应该查找“xmlns:gpxx”属性。