Um es zu tun mit DOM Sie tun
$dom = new DOMDocument;
$dom->load('file.xml');
foreach($dom->getElementsByTagName('file') as $file) {
echo $file->getAttribute('path');
}
Sie auch mit XPath tun können:
$dom = new DOMDocument;
$dom->load('file.xml');
$xPath = new DOMXPath($dom);
foreach($xPath->evaluate('/files/file/@path') as $path) {
echo $path->nodeValue;
}
Oder als String-Wert direkt:
$dom = new DOMDocument;
$dom->load('file.xml');
$xPath = new DOMXPath($dom);
echo $xPath->evaluate('string(/files/file/@path)');
Sie können einzelne holen Knoten auch durch das DOM manuell durchlaufen
$dom = new DOMDocument;
$dom->preserveWhiteSpace = FALSE;
$dom->load('file.xml');
echo $dom->documentElement->firstChild->getAttribute('path');
Markieren Sie diese CW, weil dies schon mehrfach (nur mit verschiedenen Elementen) beantwortet wurde, einschließlich mir, aber ich bin zu faul, das Duplikat zu finden.
Seien Sie einfach vorsichtig. Der Wert von $ xml-> file ['path'] ist keine Zeichenkette. Es ist eine Instanz von SimpleXMLElement. – mellowsoon
In der Tat. Es kann Probleme verursachen, wenn man den Wert mit einem anderen String vergleicht, aber man kann diesen Wert vorher in eine Zeichenkette umwandeln '(string) $ xml-> file ['path']' –
Danke Leute, genau das, was ich gesucht habe –