2015-03-13 68 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