Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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_Xml - Fatal编程技术网

Javascript XML解析包含属性的标头?

Javascript XML解析包含属性的标头?,javascript,xml,Javascript,Xml,我正在使用Javascript中的XML代码尝试创建热图,XML如下所示: <trk> <name>Oscar</name> <trkseg> <trkpt lat="20.922436" lon="-32.950274"> <ele>35.23</ele> <time>2013-04-28T09:23:11Z</time> </trkpt>

我正在使用Javascript中的XML代码尝试创建热图,XML如下所示:

<trk>
 <name>Oscar</name>
 <trkseg>
 <trkpt lat="20.922436" lon="-32.950274">
      <ele>35.23</ele>
      <time>2013-04-28T09:23:11Z</time>
  </trkpt>
  <trkpt lat="21.231232" lon="-30.9123123">
      <ele>35.23</ele>
      <time>2013-04-28T09:23:11Z</time>
  </trkpt>
  </trkseg>
</trk>
但它找不到信息——我在这里遗漏了什么

谢谢你的帮助

更新

一段代码片段,解释了我到目前为止所做的尝试:

var xmlParsing = new XMLHttpRequest();
var xmlDoc = "Hello";
var readyString = "asd";

xmlParsing.open("GET","3.xml", false);
xmlParsing.send();

xmlDoc = xmlParsing.responseXML;


var x=xmlDoc.getElementsByTagName("trk");
var y = xmlDoc.getElementsByTagName("trkseg");  

for (i=0;i<x.length;i++){ 



  document.write(x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue);

  document.write(": <em>");

  for ( e=0; e < y.length; e++) {
  document.write(y[e].getElementsByTagName("trkpt")[0].childNodes[0].nodeValue);
  }

  document.write("</em> <br>");
  }
var xmlParsing=new XMLHttpRequest();
var xmlDoc=“你好”;
var readyString=“asd”;
open(“GET”,“3.xml”,false);
xmlParsing.send();
xmlDoc=xmlParsing.responseXML;
var x=xmlDoc.getElementsByTagName(“trk”);
变量y=xmlDoc.getElementsByTagName(“trkseg”);
对于(i=0;i而言,问题在于:

y[e].getElementsByTagName("trkpt")[0].childNodes[0].nodeValue
此元素的
childNodes
不是您所期望的。如果您这样做:

console.log(y[e].getElementsByTagName("trkpt")[0].childNodes);
然后您将看到以下内容:

[text, ele, text, time, text]
您需要筛选出文本节点。您可以尝试使用:

y[e].getElementsByTagName("trkpt")[0].firstElementChild.textContent
但如果需要其他节点,则应循环并过滤掉文本节点:

var children = y[e].getElementsByTagName("trkpt")[0].childNodes;
for(var c=0; c < children.length; c++){
    if(children[c].nodeType == Node.ELEMENT_NODE){
        // Do whatever
        console.log(children[c].textContent);
    }
}
var children=y[e]。getElementsByTagName(“trkpt”)[0]。childNodes;
for(var c=0;c
问题在于:

y[e].getElementsByTagName("trkpt")[0].childNodes[0].nodeValue
此元素的
childNodes
不是您所期望的。如果您这样做:

console.log(y[e].getElementsByTagName("trkpt")[0].childNodes);
然后您将看到以下内容:

[text, ele, text, time, text]
您需要筛选出文本节点。您可以尝试使用:

y[e].getElementsByTagName("trkpt")[0].firstElementChild.textContent
但如果需要其他节点,则应循环并过滤掉文本节点:

var children = y[e].getElementsByTagName("trkpt")[0].childNodes;
for(var c=0; c < children.length; c++){
    if(children[c].nodeType == Node.ELEMENT_NODE){
        // Do whatever
        console.log(children[c].textContent);
    }
}
var children=y[e]。getElementsByTagName(“trkpt”)[0]。childNodes;
for(var c=0;c
问题在于:

y[e].getElementsByTagName("trkpt")[0].childNodes[0].nodeValue
此元素的
childNodes
不是您所期望的。如果您这样做:

console.log(y[e].getElementsByTagName("trkpt")[0].childNodes);
然后您将看到以下内容:

[text, ele, text, time, text]
您需要筛选出文本节点。您可以尝试使用:

y[e].getElementsByTagName("trkpt")[0].firstElementChild.textContent
但如果需要其他节点,则应循环并过滤掉文本节点:

var children = y[e].getElementsByTagName("trkpt")[0].childNodes;
for(var c=0; c < children.length; c++){
    if(children[c].nodeType == Node.ELEMENT_NODE){
        // Do whatever
        console.log(children[c].textContent);
    }
}
var children=y[e]。getElementsByTagName(“trkpt”)[0]。childNodes;
for(var c=0;c
问题在于:

y[e].getElementsByTagName("trkpt")[0].childNodes[0].nodeValue
此元素的
childNodes
不是您所期望的。如果您这样做:

console.log(y[e].getElementsByTagName("trkpt")[0].childNodes);
然后您将看到以下内容:

[text, ele, text, time, text]
您需要筛选出文本节点。您可以尝试使用:

y[e].getElementsByTagName("trkpt")[0].firstElementChild.textContent
但如果需要其他节点,则应循环并过滤掉文本节点:

var children = y[e].getElementsByTagName("trkpt")[0].childNodes;
for(var c=0; c < children.length; c++){
    if(children[c].nodeType == Node.ELEMENT_NODE){
        // Do whatever
        console.log(children[c].textContent);
    }
}
var children=y[e]。getElementsByTagName(“trkpt”)[0]。childNodes;
for(var c=0;c
属性对
getElementsByTagName
没有任何影响。无论问题是什么,您共享的代码都不会暴露出来。请尝试创建简化的测试用例。请向我们展示完整的代码,问题必须在别处。@Paul-您的问题似乎是“即使trkpt元素具有属性,我如何选择它们?”,您是否打算询问“仅当trkpt具有特定属性和特定值时,我如何选择trkpt?”@RocketHazmat-它返回一个空值-如果你们给我一分钟的时间,我可以用一段代码更新它并向你们展示。你们的实际XML中是否有多个
trk
trkpt
或其他任何内容?如果是,请在你们的示例中反映出来。属性对
getElementsByTagName
没有任何影响问题是,您共享的代码没有揭示这一点。请尝试创建一个简化的测试用例。请向我们展示完整的代码,问题必须在其他地方。@Paul-您的问题似乎是“即使trkpt元素具有属性,我如何选择它们?”您打算问吗“仅当trkpt具有具有特定值的特定属性时,我如何选择trkpt?"@RocketHazmat-它返回一个空值-如果你们给我一分钟的时间,我可以用一段代码更新它并向你们展示。你们的实际XML中是否有多个
trk
trkpt
或其他任何内容?如果是,请在你们的示例中反映出来。属性对
getElementsByTagName
没有任何影响问题是,您共享的代码没有揭示这一点。请尝试创建一个简化的测试用例。请向我们展示完整的代码,问题必须在其他地方。@Paul-您的问题似乎是“即使trkpt元素具有属性,我如何选择它们?”您打算问吗“仅当trkpt具有具有特定值的特定属性时,我如何选择trkpt?"@RocketHazmat-它返回一个空值-如果你们给我一分钟的时间,我可以用一段代码更新它并向你们展示。你们的实际XML中是否有多个
trk
trkpt
或其他任何内容?如果是,请在你们的示例中反映出来。属性对
getElementsByTagName
没有任何影响问题是,您共享的代码没有揭示这一点。请尝试创建一个简化的测试用例。请向我们展示完整的代码,问题必须在其他地方。@Paul-您的问题似乎是“即使trkpt元素具有属性,我如何选择它们?”您打算问吗“仅当trkpt具有具有特定值的特定属性时,我如何选择trkpt?“@RocketHazmat-它返回一个空值-如果你们给我一分钟的时间,我可以用一段代码更新它并展示给你们。你们的实际XML中是否有多个
trk
trkpt
或其他任何内容?如果是,请在你们的示例中反映出来。