Xử lý XML
Số trang: 4
Loại file: doc
Dung lượng: 38.50 KB
Lượt xem: 5
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
PHP5 cung cấp class SimpleXML là một class rất dễ sử dụng, bài này sẽ hướng dẫncác bạn parse file XML trong 7 nốt nhạc.
Nội dung trích xuất từ tài liệu:
Xử lý XML Bài 19: Xử lý XMLPHP5 cung cấp class SimpleXML là một class rất dễ sử dụng, bài này sẽ hướng dẫncác bạn parse file XML trong 7 nốt nhạc.Đầu tiên, lấy một đoạn XML mẫu để tập tành phân tích:HTML Code: A Thousand Splendid Suns Khaled Hosseini Riverhead Hardcover 14.27 The Brief Wondrous Life of Oscar Wao Junot Diaz Riverhead Hardcover 14.97 Harry Potter and the Deathly Hallows J. K. Rowling Arthur A. Levine Books 19.24 Để tạo ra một đối tượng SimpleXmlElement, cách đơn giản là truyền vào một chuỗihoặc một file:HTML Code: // Passing the XML $books = SimpleXMLElement($XmlData); //------------------- // Passing a filename $books = SimpleXMLElement(books.xml, null, true);Nhìn vào đoạn XML ví dụ, ta sẽ lấy ra tất cả các book hay của Amazon:PHP Code:EOF;foreach($books as $book) // loop through our books{ echo publisher} ${$book->amazon_price} {$book[isbn]} EOF;}echo ;?>Bạn để ý rằng $books (có chữ s nhé) là một Element do khái niệm mỗimột file XML thì phải có root element. Vì thế, đừng mong đợi có đốitượng SimpleXml không nhé .Mỗi element có thể có nhiều element con cùng loại hay khác loại, ví dụnày là cùng loại book và class SimpleXmlElement này cho phép ta duyệtqua các element con cùng loại như một array như ví dụ foreach() ở trên.Cuối cùng, nói về cú pháp truy cập child element và attribute. Bác nào chưa biết kháiniệm này nữa thì:HTML Code: A Thousand Splendid Suns Khaled Hosseini Riverhead Hardcover 14.27 isbn là một attribute, các giá trị của một attribute phải để trong dấu (), ,... là các child elementChỉ giải thích tới đây thôi, bác nào có ý định ngâm cứu XML, XML Schema,... thì 5sgợi ý là nên ... từ bỏ ý định ngông cuống thừa thời gian này đi vì có cả năm may ra họcmới xong mà học từ tháng 1-12 thì tới tháng 12 sẽ quên tháng 1 . Cứ việc coi nó nhưkhái niểm HTML đã học rồi xài cho thoải mái nhá.Quay về cú pháp, lại coi ví dụ simple trên: $book->title là truy cập child element trongkhi $book[isbn] là truy cập attribute. Done!!!Đơn giản thế thôi, bạn thấy xử lý XML data có dễ chưa ?Ví dụ trên, nếu bạn không thích dụng foreach thì có thể dùng biến counter $i, viết lạilà $tempBook = $books->book[$i] rồi dùng $tempBook để xử lý.Giờ thêm vào tí XPath cho nó bằng anh bằng em:XPath đơn giản là cách chỉ ra đường dẫn path trong 1 XML document thông qua cácelement cha/con theo cú pháp giống như thư mục của linux: /home/user/... Xpath giúpbạn lọc ra các child element trong các element cha cùng loại, gom lại thành mảng và xửlý.Ví dụ sau giúp bạn lấy ra tất cả các title của book và tất cả các số ISBN:PHP Code: $titles = $books->xpath(book/title);foreach($titles as $title){ echo $title.PHP_EOL;}//////////////////////////////////////////////$isbn = $books->xpath(book/@isbn);foreach($isbn as $isbn){ echo $isbn.PHP_EOL;}Nhớ chú ý cách dùng cú pháp / và /@ nhé.Giờ parse thử RSS của tuổi trẻ coi sao nèPHP Code:Cuối cùng,một vài thuộc tính của đối tượng SimpleXmlElement các bạn sẽ quan tâm:PHP Code: = trim((string) $element); // Bản thên element nó là XML,$valuebạn lấy giá trị của element thì ép kiểu về string // lấy tất cả các attribute $attributes = $element->attributes(); // lấy các child element $children = $element->children();
Nội dung trích xuất từ tài liệu:
Xử lý XML Bài 19: Xử lý XMLPHP5 cung cấp class SimpleXML là một class rất dễ sử dụng, bài này sẽ hướng dẫncác bạn parse file XML trong 7 nốt nhạc.Đầu tiên, lấy một đoạn XML mẫu để tập tành phân tích:HTML Code: A Thousand Splendid Suns Khaled Hosseini Riverhead Hardcover 14.27 The Brief Wondrous Life of Oscar Wao Junot Diaz Riverhead Hardcover 14.97 Harry Potter and the Deathly Hallows J. K. Rowling Arthur A. Levine Books 19.24 Để tạo ra một đối tượng SimpleXmlElement, cách đơn giản là truyền vào một chuỗihoặc một file:HTML Code: // Passing the XML $books = SimpleXMLElement($XmlData); //------------------- // Passing a filename $books = SimpleXMLElement(books.xml, null, true);Nhìn vào đoạn XML ví dụ, ta sẽ lấy ra tất cả các book hay của Amazon:PHP Code:EOF;foreach($books as $book) // loop through our books{ echo publisher} ${$book->amazon_price} {$book[isbn]} EOF;}echo ;?>Bạn để ý rằng $books (có chữ s nhé) là một Element do khái niệm mỗimột file XML thì phải có root element. Vì thế, đừng mong đợi có đốitượng SimpleXml không nhé .Mỗi element có thể có nhiều element con cùng loại hay khác loại, ví dụnày là cùng loại book và class SimpleXmlElement này cho phép ta duyệtqua các element con cùng loại như một array như ví dụ foreach() ở trên.Cuối cùng, nói về cú pháp truy cập child element và attribute. Bác nào chưa biết kháiniệm này nữa thì:HTML Code: A Thousand Splendid Suns Khaled Hosseini Riverhead Hardcover 14.27 isbn là một attribute, các giá trị của một attribute phải để trong dấu (), ,... là các child elementChỉ giải thích tới đây thôi, bác nào có ý định ngâm cứu XML, XML Schema,... thì 5sgợi ý là nên ... từ bỏ ý định ngông cuống thừa thời gian này đi vì có cả năm may ra họcmới xong mà học từ tháng 1-12 thì tới tháng 12 sẽ quên tháng 1 . Cứ việc coi nó nhưkhái niểm HTML đã học rồi xài cho thoải mái nhá.Quay về cú pháp, lại coi ví dụ simple trên: $book->title là truy cập child element trongkhi $book[isbn] là truy cập attribute. Done!!!Đơn giản thế thôi, bạn thấy xử lý XML data có dễ chưa ?Ví dụ trên, nếu bạn không thích dụng foreach thì có thể dùng biến counter $i, viết lạilà $tempBook = $books->book[$i] rồi dùng $tempBook để xử lý.Giờ thêm vào tí XPath cho nó bằng anh bằng em:XPath đơn giản là cách chỉ ra đường dẫn path trong 1 XML document thông qua cácelement cha/con theo cú pháp giống như thư mục của linux: /home/user/... Xpath giúpbạn lọc ra các child element trong các element cha cùng loại, gom lại thành mảng và xửlý.Ví dụ sau giúp bạn lấy ra tất cả các title của book và tất cả các số ISBN:PHP Code: $titles = $books->xpath(book/title);foreach($titles as $title){ echo $title.PHP_EOL;}//////////////////////////////////////////////$isbn = $books->xpath(book/@isbn);foreach($isbn as $isbn){ echo $isbn.PHP_EOL;}Nhớ chú ý cách dùng cú pháp / và /@ nhé.Giờ parse thử RSS của tuổi trẻ coi sao nèPHP Code:Cuối cùng,một vài thuộc tính của đối tượng SimpleXmlElement các bạn sẽ quan tâm:PHP Code: = trim((string) $element); // Bản thên element nó là XML,$valuebạn lấy giá trị của element thì ép kiểu về string // lấy tất cả các attribute $attributes = $element->attributes(); // lấy các child element $children = $element->children();
Tìm kiếm theo từ khóa liên quan:
lý thuyết mạng quản trị mạng giáo trình quản trị mạng giáo trình quản trị mạng tài liệu quản trị mạngTài liệu liên quan:
-
173 trang 432 3 0
-
24 trang 366 1 0
-
20 trang 261 0 0
-
Giáo trình Hệ thống mạng máy tính CCNA (Tập 4): Phần 2
102 trang 257 0 0 -
Đề cương chi tiết học phần Thiết kế và cài đặt mạng
3 trang 240 0 0 -
Báo cáo tốt nghiệp: Tìm hiểu Proxy và ứng dụng chia sẻ Internet trong mạng LAN qua Proxy
38 trang 225 0 0 -
122 trang 217 0 0
-
Giáo trình về Nhập môn mạng máy tính
94 trang 165 0 0 -
Giáo trình Tin học văn phòng (Ngành: Quản trị mạng) - CĐ Công nghiệp Hải Phòng
49 trang 163 0 0 -
Giáo trình Quản trị Web Mail Server - Nghề: Quản trị mạng - CĐ Kỹ Thuật Công Nghệ Bà Rịa-Vũng Tàu
244 trang 158 0 0