2013-05-21 50 views
-2

如果我有:僅顯示在XML具有特定屬性在PHP節點

<listing> 
<name>Bob</name> 
<age>20</age> 
<hair>red</hair> 
</listing> 

<listing> 
<name>John</name> 
<age>24</age> 
<hair>black</hair> 
</listing> 

我如何代碼我的PHP頁面只顯示商家信息是否發=黑色

,這樣只會拉

<listing> 
<name>John</name> 
<age>24</age> 
<hair>black</hair> 
</listing> 

感謝

+0

您目前如何解析XML?瞭解您已有的功能很有幫助。 – Ryan

+0

我是一個新手,但它是一個標準的XML文件,像這樣拉[http://www.w3schools.com/xml/simple.xml – user2405912

回答

0

使用XPath

// First, your XML must be wraped with some root tag. 
$data = <<<XML 
<root> 
    <listing> 
     <name>Bob</name> 
     <age>20</age> 
     <hair>red</hair> 
    </listing> 

    <listing> 
     <name>John</name> 
     <age>24</age> 
     <hair>black</hair> 
    </listing> 
</root> 
XML; 

// Instancing the SimpleXMLElement within the XML(obviously) 
$xml = new SimpleXMLElement($data); 

// XPath 
$xpath = $xml->xpath("listing[contains(hair,'black')]"); 
/** 
* eXplained XPath: 
*  <listing> that 
*    <hair>'s content is equal black 
*/ 

foreach($xpath as $node){ 
    // just for fun echoes the <results> node 
    echo $node->asXml(); 
} 
相關問題