2013-05-01 34 views
0

ornek.xml這裏:XML Xpath的用法

<?xml version="1.0" encoding="UTF-8"?> 
<library> 
    <book onay="e" katid="31" dil="tr"> 
     <kitapadi>Dear Lovely</kitapadi> 
     <yazar>Author 1234</yazar> 
     <isbn>1234513</isbn> 
     </book> 
     <book onay="e" katid="32" dil="en"> 
     <kitapadi>Love and Hate</kitapadi> 
     <yazar>Author 345</yazar> 
     <isbn>1234513</isbn> 
     </book> 
</library> 

PHP代碼:

$xml = simplexml_load_file('veri/ornek.xml'); 
$search= '34'; 
$result = $xml->xpath('//yazar[contains(.,"'.$search.'")]'); 
foreach($result as $tt){ 
    echo $tt; 
    } 

如果我用這個,我可以得到yazar屬性。但我希望得到另一個屬性 例如:

$搜索= 34,在比賽yazar 34給在kitapadi,ISBN,yazar

回答

0

如果你喜歡這本書,其中包含在yazar的serach sring。使用像這樣的:

$xml = simplexml_load_file('veri/ornek.xml'); 
$search= "34"; 
$result = $xml->xpath("//book[yazar[contains(.,' $search')]]"); 
foreach($result as $tt){ 
    echo $tt->isbn; 
    } 
+0

$ xml-> xpath('// book [yazar [contains(。,''。search。'「)]] isbn [contains(。,''。$搜索。'」)]');我將如何在2場中搜索? – 2013-05-02 00:28:08

+0

@Cumhur Yrdkl試試這個xpath:''//book[yazar[contains(.,'$search')] or isbn [contains(。,'$ search')]]「' – 2013-05-02 06:38:38

0

此XPath查詢的伎倆塊:

//*[text()[contains(., '34')]] 

結果:

Element='<yazar>Author 1234</yazar>' 
Element='<isbn>1234513</isbn>' 
Element='<yazar>Author 345</yazar>' 
Element='<isbn>1234513</isbn>'