0

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

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

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

4

1 回答 1

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);

   }

在此处查看子节点和子节点之间的不同

于 2013-04-17T18:07:38.097 回答