Để làm điều đó với DOM bạn làm
$dom = new DOMDocument;
$dom->load('file.xml');
foreach($dom->getElementsByTagName('file') as $file) {
echo $file->getAttribute('path');
}
Bạn cũng có thể làm điều đó với XPath:
$dom = new DOMDocument;
$dom->load('file.xml');
$xPath = new DOMXPath($dom);
foreach($xPath->evaluate('/files/file/@path') as $path) {
echo $path->nodeValue;
}
Hoặc như một giá trị chuỗi trực tiếp:
$dom = new DOMDocument;
$dom->load('file.xml');
$xPath = new DOMXPath($dom);
echo $xPath->evaluate('string(/files/file/@path)');
Bạn có thể lấy cá nhân các nút cũng bằng cách di chuyển DOM theo cách thủ công
$dom = new DOMDocument;
$dom->preserveWhiteSpace = FALSE;
$dom->load('file.xml');
echo $dom->documentElement->firstChild->getAttribute('path');
Đánh dấu CW này, bởi vì điều này đã được trả lời trước nhiều lần (chỉ với các yếu tố khác nhau), bao gồm cả tôi, nhưng tôi quá lười để tìm bản sao.
Hãy cẩn thận. Giá trị của $ xml-> file ['path'] không phải là một chuỗi. Đó là một ví dụ của SimpleXMLElement. – mellowsoon
Thật vậy. Nó có thể gây ra vấn đề khi so sánh giá trị với một chuỗi khác nhưng bạn có thể truyền giá trị này thành chuỗi trước (string) $ xml-> file ['path'] ' –
cảm ơn guys, chính xác cái tôi đang tìm kiếm –