2015-03-13 90 views
0

喜那裏回來,XPath的2組不同的元素

我有一個XML文件是這樣的:

<Movies> 
    <Movie> 
     <Title>AAAA</Title> 
     <Description>aaaa</Description> 
    </Movie> 
    <Movie> 
     <Title>BBBB</Title> 
     <Description>bbbb</Description> 
    </Movie> 
</Movies> 

,我想使用XPath通過這個文件的元素進行迭代,並返回標題和說明,問題是,我設法只返回其中的一個。這裏是我的代碼:

 path="/Movies/Movie/Title"; 
     var nodes=xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null); 
     var result=nodes.iterateNext(); 

     while (result) 
      { 
      document.write('<figure class="effect-oscar wowload fadeInUp">'); 
      document.write('<img src="images/portfolio/1.jpg" alt="img01"/>'); 
      document.write('<figcaption>'); 
      document.write('<h2>'); 
      document.write(result.childNodes[0].nodeValue); 
      document.write('</h2>'); 
      document.write('<p>Detalii despre film 1<br>'); 
      document.write('<a href="images/portfolio/1.jpg" title="1" data-gallery>View more</a></p>'); 
      document.write('</figcaption>'); 
      document.write('</figure>'); 
      result=nodes.iterateNext(); 

      } 
     } 

'直到現在我設法返回標題。我怎樣才能返回同樣的while循環中的描述?


後來編輯:

xmlDoc=loadXMLDoc("movies1.xml"); 
    for(i=0; i<12; i++){ 
     document.write('<figure class="effect-oscar wowload fadeInUp">'); 
     pic1 = '<img src="'; 
     pic2 = '" alt="img01"/>'; 
     c=xmlDoc.getElementsByTagName("Picture")[i] 
     d=c.childNodes[0]; 

     pic3=pic1.concat(d.nodeValue); 
     pic4=pic3.concat(pic2); 
     document.write(pic4); 

     document.write('<figcaption>'); 
     document.write('<h2>'); 
     x=xmlDoc.getElementsByTagName("Title")[i] 
     y=x.childNodes[0]; 
     document.write(y.nodeValue); 
     document.write('</h2>'); 
     document.write('<p>'); 
     a=xmlDoc.getElementsByTagName("Description")[i] 
     b=a.childNodes[0]; 
     document.write(b.nodeValue); 
     document.write('<br>'); 
     document.write('<a href="https://www.google.ro" title="1">View trailer</a></p>'); 
     //document.write('<a class="youtube" href="http://www.youtube.com/watch?v=4eYSpIz2FjU" title="jQuery YouTube Popup Player Plugin TEST">Test Me</a></p>') 
     document.write('</figcaption>'); 
     document.write('</figure>'); 
    } 

謝謝:我使用這段代碼解決我的問題!

+0

爲什麼不返回所有電影? /電影/電影 – 2015-03-13 17:09:10

+0

我的問題是我不知道如何檢索標題和說明。我必須寫什麼,而不是result.childNodes [0] .nodeValue?對於我的noobie問題感到抱歉。 – Frody 2015-03-15 13:08:18

回答

1

不要過度/Movies/Movie/Title迭代,只遍歷/Movies/Movie,並且在每一個步驟,同時檢索TitleDescription(或./Title./Description,respectivelly)。

+0

無需領先的'。/' - 無論如何都要考慮上下文節點。 – 2015-03-13 16:46:20

+0

我的問題是我不知道如何檢索標題和說明。我必須寫什麼,而不是result.childNodes [0] .nodeValue? 對不起,我的noobie問題。 – Frody 2015-03-14 22:03:42