2011-11-12 65 views
3
<path> 
    <name> 
     <option id="6523"> 
      <needle>Haystack</needle> 
      <foo>bar</foo> 
     </option> 

     <option id="6524"> 
      <needle>Haystack</needle> 
      <foo>Bar</foo> 
     </option> 
    </name> 
</path> 

Hello again Stackoverflow!SimpleXML:獲取屬性變量的值

例如,我想針,並從選項6524 foo的,我怎麼使用SimpleXML的?我已經嘗試過xpath(almoast每個主題都在stackoverflow上,提示xpath),但是這對我來說並不適用!你們能幫我嗎?

謝謝!

回答

2

試試這個代碼:

$xml_str = '.....'; 

$xml = simplexml_load_string($xml_str); 
$result = $xml->xpath('//name/option[@id="6524"]/foo'); 

echo $result[0][0];  

On Codepad.org

0

使用XPath:

<?php 
$xml = <<<XML 
<path> 
    <name> 
     <option id="6523"> 
      <needle>Haystack</needle> 
      <foo>bar</foo> 
     </option> 

     <option id="6524"> 
      <needle>Haystack</needle> 
      <foo>Bar</foo> 
     </option> 
    </name> 
</path> 
XML; 

$xml = new SimpleXMLElement($xml); 
$options = $xml->xpath('//option[@id = "6524"]'); 
$opt = $options[0]; 

echo 'needle: ' . $opt->needle . ', foo: ' . $opt->foo; 
0

嘗試是這樣的:

$xml = simplexml_load_string($string); 
$result = $xml->xpath('/path/name/option'); 
while(list(, $node) = each($result)) { 
    echo $node->needle . " - " . $node->foo . "<br />"; 
} 
0

試試這個:

$ result = $ xml-> xpath('// path/name/option [@ id =「6524」]');