<path>
<name>
<option id="6523">
<needle>Haystack</needle>
<foo>bar</foo>
</option>
<option id="6524">
<needle>Haystack</needle>
<foo>Bar</foo>
</option>
</name>
</path>
再次问好Stackoverflow!
例如,我想要选项6524中的Needle和foo,我如何使用SimpleXML?我试过xpath(almoast这里的每个主题在stackoverflow上建议xpath),但这对我来说没有用!你能帮帮我吗?
谢谢!
答案 0 :(得分:2)
试试这段代码:
$xml_str = '.....';
$xml = simplexml_load_string($xml_str);
$result = $xml->xpath('//name/option[@id="6524"]/foo');
echo $result[0][0];
答案 1 :(得分: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;
答案 2 :(得分:0)
尝试这样的事情:
$xml = simplexml_load_string($string);
$result = $xml->xpath('/path/name/option');
while(list( , $node) = each($result)) {
echo $node->needle . " - " . $node->foo . "<br />";
}
答案 3 :(得分:0)
试试这个:
$ result = $ xml-&gt; xpath('// path / name / option [@ id =“6524”]');