您可以使用xpath
表達式來完成工作。它就像一個XML的SQL查詢。
$results = $xml->xpath("//notify[@type='post']/@name");
假設XML中$xml
,表達倒像
select all notify nodes,
where their type-attribute is post,
give back the name-attribute.
$results
將是一個陣列,並且我的代碼示例爲simplexml
製成。不過,您可以使用與DOM
相同的xpath-expression
。
下面是完整的代碼:
$x = <<<XML
<root>
<notify type="post" name="Max" />
<notify type="get" name="Lisa" />
<notify type="post" name="William" />
</root>
XML;
$xml = simplexml_load_string($x);
$results = $xml->xpath("//notify[@type='post']/@name");
foreach ($results as $result) echo $result . "<br />";
輸出:
Max
William
看到它的工作:http://codepad.viper-7.com/eO29FK
'name'是一個屬性,而不是元素,也不是一個孩子。 '$ node-> getAttribute('name')'值得一試,但是:你用什麼來分析DOM? –