Nói rằng tôi có một file html mà tôi đã nạp, tôi chạy truy vấn này:PHP XPath: Nhận tất cả của href chứa "chữ"
$url = 'http://www.fangraphs.com/players.aspx';
$html = file_get_contents($url);
$myDom = new DOMDocument;
$myDom->formatOutput = true;
@$myDom->loadHTML($html);
$anchor = $xpath->query('//a[contains(@href,"letter")]');
Điều đó mang lại cho tôi một danh sách các neo mà trông giống như sau :
<a href="players.aspx?letter=Aa">Aa</a>
Nhưng tôi cần một cách để chỉ nhận "players.aspx? Letter = Aa".
tôi nghĩ rằng tôi có thể thử:
$anchor = $xpath->query('//a[contains(@href,"letter")]/@href');
Nhưng điều đó mang lại cho tôi một lỗi php nói rằng tôi không thể thêm nút khi tôi thử như sau:
$xpath = new DOMXPath($myDom);
$newDom = new DOMDocument;
$j = 0;
while($myAnchor = $anchor->item($j++)){
$node = $newDom->importNode($myAnchor, true); // import node
$newDom->appendChild($node);
}
Bất kỳ ý tưởng làm thế nào để có được chỉ giá trị của các thẻ href mà truy vấn đầu tiên chọn ?? Cảm ơn!
này hoạt động mà không cần bất kỳ lỗi cho tôi .. Tôi có thể xem chi tiết của mã này, ví dụ xml đó là DOM cho newDom? –
Vâng, xin lỗi, tôi không rõ ràng.Nó không phải là XML, nó là một tệp HTML được nạp vào. Bạn có thể xem lại bài đăng gốc không? Tôi đã chỉnh sửa phần trên cùng của nó để phản ánh cách tôi có được DOM. – sfgiants2010
Vẫn chưa đủ - bạn đang thiếu nơi 'xpath' và' newDom' được khởi tạo –