为什么我无法获取此xml文件的所需标记的名称

时间:2013-04-17 17:44:42

标签: javascript xml xml-parsing

我尝试获取 head - >的子节点的名称。文本节点(所以我需要 我写的时候不喜欢

var headerstyles = xmlDoc.getElementsByTagName("head")[0].getElementsByTagName("style")[0].childNodes; 

   for (i=0;i<headerstyles.length;i++) 
   {
        alert (headerstyles[i].nodeName);

   }

我得到回复 #text color #text font #text

所以在看到实际的NodeName之前我不明白我得到了这个 #text 我该如何解决这个问题。

这是我的代码

xmlhttp.open("GET","desc.xml",false);
    xmlhttp.send();
    alert (xmlhttp.responseText);
    xmlDoc=xmlhttp.responseXML;
    alert (xmlDoc);




     var headerstyles = xmlDoc.getElementsByTagName("head")[0].getElementsByTagName("style")[0].childNodes; 

   for (i=0;i<headerstyles.length;i++) 
   {
        alert (headerstyles[i].nodeName);

   }

这是我的desc.xml

 
<docs>
 <main>
   <bgrnd>
     <img> </img>
     <color> </color>
   </bgrnd>

   <head>
     <text>Learning about Birds</text>
     <style>
       <color>red</color>
       <font>italic bold 30px Georgia,serif</font>

     </style>
   </head>


   <text>
     <link>  
       <l>   
         <dscrpt>Lesson 1 - Diet and feeding; Water and Drinking</dscrpt>
         <hrf> diet.html </hrf>
       </l>

       <l>
         <dscrpt>Lesson 2 - Feather Care </dscrpt>
         <hrf> feather.html  </hrf>
       </l>

       <l>
         <dscrpt>Lesson 3  - Level three  </dscrpt>
         <hrf> item3.html  </hrf>
       </l>

     </link> ... and so on

............................................

1 个答案:

答案 0 :(得分:0)

#text 指的是文本节点。在您的情况下,您将使用children而不是childNodes

xmlhttp.open("GET","desc.xml",false);
    xmlhttp.send();
    alert (xmlhttp.responseText);
    xmlDoc=xmlhttp.responseXML;
    alert (xmlDoc);




     var headerstyles = xmlDoc.getElementsByTagName("head")[0].getElementsByTagName("style")[0].children; 

   for (i=0;i<headerstyles.length;i++) 
   {
        alert (headerstyles[i].nodeName);

   }

查看子节点和子节点here

之间的不同