intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

PHP5 cung cấp class SimpleXML

Chia sẻ: Lê Văn Thời | Ngày: | Loại File: PDF | Số trang:4

114
lượt xem
8
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

PHP5 cung cấp class SimpleXML là một class rất dễ sử dụng, bài này sẽ hướng dẫn cá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:  PHP Code: (Click Here to Select All)        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   ...

Chủ đề:
Lưu

Nội dung Text: PHP5 cung cấp class SimpleXML

  1. PHP5 cung cấp class SimpleXML  là một class rất dễ sử dụng, bài  này sẽ hướng dẫn cá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:  PHP Code: (Click Here t o Select  All)        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ỗi  hoặc  một file:  // 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: (Click Here t o Select  All) 
  2. 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ỗ i  một file XML thì phải có root element. Vì thế, đừng mong đợi có đối  tượ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ệt  qua 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ái  niệm này nữa thì:  PHP Code: (Click Here t o Select  All)    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 element  Chỉ giải thích tới đây thô i, bác  nào có ý định  ngâm cứu XML, XML Schema,... thì 5s gợ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ọc mớ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 co i ví dụ 'simple' trên: $book­>tit le là truy cập child element trong  khi $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ại  là
  3. $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ác  element cha/con theo cú pháp giống như thư mục của linux: /ho me/user/... Xpath giúp  bạn lọc ra các child element trong các element cha cùng  loại, go m  lại thành  mảng  và xử  lý. Ví dụ sau giúp bạn lấy ra tất cả các tit le của book và tất cả các số ISBN:  PHP Code: (Click Here t o Select  All)  $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: (Click Here t o Select  All)    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:
  4. PHP Code: (Click Here t o Select  All)  $value  = trim((string) $element);  // Bản thên element nó là XML,  bạn lấy giá trị của element thì ép kiểu về string  $attributes = $element­>attributes();  // lấy tất cả các attribute  $children  = $element­>children();  // lấy các child element
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2