2011-11-12 58 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”]');