2012-11-19 84 views
5

這是我的PHP代碼:PHP的SimpleXML的XPath:包含和位置

$xml = new SimpleXMLElement('data.xml', null, true); 
$q = $xml->xpath('post/misc[contains(tags,"animal")][position() <= 2]'); 

這裏是XML文件:

<?xml version="1.0" encoding="UTF-8" ?> 
<posts> 
    <post> 
     <id>1</id> 
     <misc> 
      <tags>animal,tiger</tags> 
      <prio>0.5</prio> 
     </misc> 
    </post> 
    <post> 
     <id>2</id> 
     <misc> 
      <tags>plant,coconut</tags> 
      <prio>0.5</prio> 
     </misc> 
    </post> 
    <post> 
     <id>3</id> 
     <misc> 
      <tags>animal,lion</tags> 
      <prio>0.5</prio> 
     </misc> 
    </post> 
    <post> 
     <id>4</id> 
     <misc> 
      <tags>animal,monkey</tags> 
      <prio>0.5</prio> 
     </misc> 
    </post> 
</posts> 

如何獲得2種第一元素,其中,它的標籤包含'動物'?

xpath結果應該是post:id=1post:id=3,但它看起來會返回所有包含animal的元素。在()括號

回答

4

把主要的XPath部分,即:

(//post/misc[contains(tags,"animal")])[position() <= 2]