SlideShare a Scribd company logo
1 of 8
Download to read offline
c và vi t XML DOM v i PHP                                                                          Page 1 of 8


      c và vi t XML DOM v i PHP
                                                                             !

M c     : Trung bình

Jack Herrington, T ng biên t p, Code Generation Network

08 01 2010

       Các k thu t myriad s n có    c và vi t XML trong PHP. Bài vi t này trình bày ba ph ng th c  c
       XML: s d ng th vi n DOM, s d ng b phân tích cú pháp SAX, và s d ng các bi u th c chính quy.
       Vi c vi t XML b ng cách s d ng DOM và khuôn m u v n b n PHP c ng s          c c p.

Vi c c và vi t Ngôn ng      ánh d u M r ng (XML) trong PHP hình nh h i áng ng i. Trong th c t , XML và t t
c các công ngh liên quan c a nó có th là n ng n . Tuy nhiên, c và vi t XML trong PHP không ph i là m t tác v
 áng ng i. Tr c tiên, b n c!n ph i h c m t chút v XML -- nó là gì và s d ng vào âu. Sau ó, b n c!n ph i h c
cách c và vi t XML trong PHP, nh ng th mà b n có th th c hi n b ng nhi u cách.

Bài vi t này cung c p bài h c v" lòng ng#n trên XML r$i gi i thích cách   c và vi t XML trong PHP.

XML là gì?
XML là m t %nh d ng l u tr d li u. Nó không %nh ngh&a d li u nào ang        c ghi l i ho c c u trúc c a d li u
 ó. XML ch' %nh ngh&a các th( và thu c tính cho các th( ó. M t th( XML có d ng úng trông gi)ng nh th này:
<name>Jack Herrington</name>

Th( <name> này ch a m t s) v n b n: Jack Herrington.

M t th( XML mà không ch a v n b n trông gi)ng nh th này:
<powerUp />

Có th có nhi u cách h n     mã hoá m t i u gì ó trong XML. Ví d , th( này t o cùng m t !u ra nh th( tr    c:
<powerUp></powerUp>

B n c ng có th b sung các thu c tính vào m t th( XML. Thí d , th( <name> này ch a các thu c tính     u tiên và
cu i cùng:

<name first="Jack" last="Herrington" />

B n c ng có th mã hoá các ký t      c bi t trong XML. Thí d , m t ký hi u ampersand (&)     c mã hoá nh th này:
&

M t tài li u XML ch a các th( và thu c tính  c %nh d ng nh các thí d ã cho là úng ng pháp, ngh&a là các th(
   c cân )i, và các ký t     c mã hoá úng cách. Li t kê 1 là m t thí d v XML úng ng pháp.

Li t kê 1. M t thí d v m c l c XML các sách
c và vi t XML DOM v i PHP                                                                            Page 2 of 8




XML trong Li t kê 1 ch a m t danh m c c a các cu)n sách. Th( cha <books> (các sách) g$m m t t p h p các th(
<book> (sách), m*i th( ch a các th( <author> (tác gi ), <title> (tiêu ), và <publisher> (nhà xu t b n).

Các tài li u XML là h p l khi c u trúc c a các th( và n i dung c a chúng c xác th c b i m t t p l c $ bên
ngoài. T p l c $ có th      c xác %nh trong m t lo t các %nh d ng. Nh m ph c v bài vi t này, t t c m i th b n
c!n là XML úng ng pháp.

N u b n ngh& r ng XML trong r t gi)ng Ngôn ng     ánh d u Siêu v n b n (HTML) thì b n ã úng. C XML và
HTML là ngôn ng d a trên các th(, và chúng có nhi u s gi)ng nhau. Tuy nhiên, i u quan tr ng là ph i l u ý r ng
trong khi các tài li u XML có th là HTML úng ng pháp, không ph i t t c các tài li u XML là HTML úng ng
pháp. Th( ng#t (br) là m t ví d tuy t h o v nh ng s khác nhau gi a XML và HTML. Ng#t dòng này là HTML
  úng ng pháp, nh ng XML không úng ng pháp:
<p>This is a paragraph<br>
With a line break</p>

Ng#t dòng này là XML và HTML úng ng pháp:
<p>This is a paragraph<br />
With a line break</p>

N u b n mu)n vi t HTML c ng là XML úng ng pháp, hãy theo chu+n Ngôn ng     ánh d u Siêu v n b n M r ng
(XHTML) t, World Wide Web Consortium (W3C) (xem Tài nguyên). T t c các trình duy t hi n i tr v XHTML.
Ngoài ra, nó còn có th s d ng các công c XML   c XHTML và tìm d li u trong các tài li u, d- h n nhi u so
v i vi c phân tích cú pháp thông qua HTML.

     c XML b ng cách s                      d ng th          vi n DOM
Cách d- nh t      c m t t p XML úng ng pháp là s d ng th vi n Mô hình )i t ng Tài li u (DOM)    c biên
d%ch sang m t s) cài t c a PHP. Th vi n DOM c toàn b tài li u XML sang b nh và trình bày nó nh m t cây
các nút, nh minh ho trong Hình 1.

Hình 1. Cây XML DOM dùng cho XML các sách




Nút books t i 'nh c a cây có hai th( book con. Trong m*i cu)n sách (book) , có các nút author, publisher, và
title. Các nút author, publisher, và title m*i th có các nút v n b n con ch a v n b n.

B mã         c t p XML các sách và hi n th% n i dung s d ng DOM hi n th% trong Li t kê 2.

Li t kê 2.   c XML các sách (books) v i DOM

                  ! "!   #   $%&
       '      $          ()#   %&
c và vi t XML DOM v i PHP                                                                                                               Page 3 of 8


                                 '            *       #             + ,     - # $ .              . %&
   /                 $                                             %
   0
                                          '               *    #    + , - # $ .                             . %&
                                              '               #$1%'    2    &

                                                  '               *    #      + ,           - # $ .                . %&
                                                                  '        #$1%'              2     &
                                      '               *     #          + ,         - # $ .            . %&
                                          '               #$1%'                2      &

             .                   '                            '                        3 .&
   4




K%ch b n l nh kh i ng b ng cách t o m t )i t ng new DOMdocument và n p XML các sách vào )i t                                              ng ó
thông qua s d ng ph ng th c load. Sau ó k%ch b n l nh s d ng ph ng th c getElementsByName                                                 nh n m t
danh m c t t c các ph!n t v i tên cho tr c.
Trong vòng l p c a các nút book, k%ch b n l nh s d ng ph ng th c getElementsByName nh n nodeValue cho
các th( author, publisher, và title. nodeValue là v n b n trong nút. Sau ó k%ch b n l nh hi n th% các giá tr% ó.

B n có th ch y k%ch b n l nh PHP trên dòng l nh nh th này:
% php e1.php
PHP Hacks - Jack Herrington - O'Reilly
Podcasting Hacks - Jack Herrington - O'Reilly
%

Nh b n th y, m t dòng                                      c in ra cho m*i kh)i sách. ó là m t xu t phát t)t. Tuy nhiên, i u gì x y ra n u b n
không có quy n truy c p                                   n th vi n XML DOM?




       c XML thông qua s                                                                d ng b phân tích cú pháp SAX
M t cách khác      c XML là s d ng API      n gi n cho b phân tích cú pháp XML (SAX). H!u h t t t c các cài t
c a PHP có b phân tích cú pháp SAX. B phân tích cú pháp SAX ch y trên mô hình g i l i. M*i khi m t th(       c
m ra ho c óng l i, ho c b t k. lúc nào b phân tích cú pháp trông th y m t v n b n nào ó, nó th c hi n các cu c
g i l i n m t s) hàm do ng /i dùng %nh ngh&a v i các thông tin nút ho c v n b n.

L i th c a m t b phân tích cú pháp SAX là ch* nó th c s nh0. B phân tích cú pháp không gi l i quá lâu b t k.
cái gì trong b nh , cho nên nó có th  c dùng cho các t p c c l n. Nh c i m là ch* vi c vi t các cu c g i l i
b phân tích cú pháp SAX là m t i u quá phi n ph c. Li t kê 3 hi n th% b mã   c t p XML các sách và hi n th%
n i dung thông qua s d ng SAX.

Li t kê 3.               c XML các sách v i b phân tích cú pháp SAX

       5                                  $%&
       5         #               &

   /                             *        #           $                    6           # 6              %
   0
                         5         6              5           #&
       / $           #             +          7       %            5           89               $%&
        5        #               # &
   4
   /                         *        #           $                    6           #    %
   0
                         5       #&
       5         #                &
   4
c và vi t XML DOM v i PHP                                                                                                                   Page 4 of 8


   /                         ) !        $                 6              )   %
   0
                         5          6    5          #&
       / $           5       #         :;,                <<
        5        #                 ;+=>? *          <<
        5        #                ,>,=* %
   0
       5             8              $           5         % ' @ 98               5        # 9       ) &
   4
   4

                             )# 5               5              $%&

   )# 5              5       #      5                $                   6 .          * #    .6 .   *     #   . %&
   )# 5              5                  5           5                $               6 . ) !    . %&

       /     /               $              ()#     6              %&

             $                      /           $   /6 A1BC % %
   0
   )# 5                  $                  6             %&
   4

   )# 5                      5/     $                     %&

   /                 $       5                                 %
   0
                         8 ,>,=* 9(. ' .(                                8 :;,           9(. ' .&
                         8 ;+=>? * 9(.3 .&
   4




K%ch b n l nh kh i ng b ng cách thi t l p m ng g_books, gi l i t t c các cu)n sách và thông tin c a chúng trong
b nh , và bi n g_elem, ghi l i tên c a th( mà k%ch b n l nh hi n ang x lý. Sau ó k%ch b n l nh %nh ngh&a các
hàm g i l i. Trong thí d này, các hàm g i l i là startElement, endElement, và textData. Hàm startElement
và endElement        c g i ra khi các th(   c m và óng t ng ng. Hàm textData          c     c g i trên v n b n
gi a kh i ng và k t thúc các th(.

Trong thí d này, th( startElement tìm ki m th( book kh i ng m t ph!n t m i trong m ng book. Sau ó,
hàm textData xem xét ph!n t hi n t i xem nó là m t th( publisher, title, ho c author. N u nh v y thì
hàm ó a v n b n hi n t i vào cu)n sách hi n t i.

   vi c phân tích cú pháp     c th c hi n, k%ch b n l nh t o b phân tích cú pháp v i hàm xml_parser_create.
Ti p theo, nó thi t t các b x lý g i l i. Sau ó k%ch b n l nh c trong t p và g i các m ng thông tin c a t p n
b phân tích cú pháp. Sau khi t p     c c, hàm xml_parser_free xoá b1 b phân tích cú pháp. Ph!n cu)i c a k%ch
b n l nh xu t ra n i dung c a g_books.

Nh b n th y, ây là b mã cho phép vi t v ng chãi h n nhi u so v i d ng t                                              ng   ng DOM. N u b n không có th
vi n DOM ho c th vi n SAX thì sao? Có ph ng án nào khác không?




Phân tích cú pháp XML v i các bi u th c chính quy
Ch#c ch#n tôi b% m t s) k s chê vì c p ti p c n này, nh ng b n có th phân tích cú pháp XML b ng các bi u th c
chính quy. Li t kê 4 cho th y m t thí d c a vi c s d ng hàm preg_     c t p các sách.

Li t kê 4.               c XML các sách v i các bi u th c chính quy

       )#            ..&
       /     /               $              ()#     6     %&
             $                      /         $     /6 A1BC % % 0                )#       (         & 4
   /             $       / %&

          5#                 5     $ . 3                 3 $(D %3 3                  3        .6
       )# 6                            %&
   /                 $                          8@9                          %
c và vi t XML DOM v i PHP                                                                                                                         Page 5 of 8


   0
            5#                5       $ . 3                            3 $(D %3 3                     3        .6
                 6                      %&
            5#                5       $ . 3                            3 $(D %3 3                 3       .6
                 6                     %&
            5#                5       $ . 3                                     3 $(D %3 3                          3   .6
                 6                     %&
            $                   8@9819(. ' .(                                         8@9819(. ' .(
                              8@9819(.3 . %&
   4



L u ý r ng b mã ó ng#n nh th nào. Nó kh i ng b ng cách c t p vào m t chu*i l n. Sau ó nó s d ng m t
hàm regex (hàm bi u th c chính quy)          c trong m*i m c sách. Cu)i cùng, b ng cách s d ng vòng l p foreach,
k%ch b n l nh l p m*i kh)i sách và ch n ra tác gi , tiêu , và nhà xu t b n.
V y thì âu là nh c i m? V n      )i v i vi c s d ng b mã bi u th c chính quy       c XML là nó không ki m tra
tr c ch#c ch#n r ng XML úng ng pháp. Có ngh&a là b n không th bi t là b n có XML không úng ng pháp
tr c khi b n b#t !u c nó. Ngoài ra, m t s) d ng m u h p l c a các bi u th c chính quy không th phù h p v i
XML c a b n, do ó b n s ph i s a i chúng sau.

Tôi không bao gi/ khuyên s d ng các bi u th c chính quy    c XML, nh ng ôi khi nó là cách thích h p nh t vì
các hàm bi u th c chính quy luôn s n có dùng. ,ng s d ng bi u th c chính quy     c XML t, tr c ti p ng /i
dùng; b n không i u khi n khuôn d ng ho c c u trúc c a XML ó. Hãy luôn c XML t, ng /i dùng b ng cách s
d ng m t th vi n DOM ho c b phân tích cú pháp SAX.




Vi t XML b ng DOM
   c XML ch' là m t ph!n c a ph ng trình. Vi t nó thì sao nh'? Cách t)t nh t                                                 vi t XML là s d ng DOM. Li t kê
5 hi n th% cách DOM xây d ng t p XML các sách.

Li t kê 5. Vi t XML các sách b ng DOM

                                      $%&
                     89                  $
                                                               6
                                                                                6
                                          .                        .
   %&
                     89                       $
                                                                                6
                                                                                6
                                          .                        .
   %&
                              ! "!                #            $%&
            ' /           #                                       &

                          '                   *        #           $ .                . %&
            '                     E           $            %&

   /                 $                                                 %
   0
                          '                   *        #           $ .              . %&
                                    '                          *       #        $ .           . %&
                     '               E                $
            '                     , ) -               $                     8              9 %
   %&
        '                     E           $                            %&
                                      '                    *       #        $ .            . %&
                 '                  E                 $
            '                     , ) -                $                    8           9 %
   %&
        '                     E           $                        %&
                                              '                        *        #   $ .               . %&
                              '                E               $
c và vi t XML DOM v i PHP                                                                                                     Page 6 of 8


            '                    , ) -       $                8        9 %
   %&
        '                    E      $                             %&

        '                    E      $        %&
   4

                         '        F G"=$%&



T i ph!n trên !u c a k%ch b n l nh, m ng books                               c n p vào v i m t s) sách m u. Các d li u ó có th t, ng /i
dùng ho c t, m t c s d li u.
Sau khi các cu)n sách m u      c n p, k%ch b n l nh t o m t new DOMDocument m i và b sung nút books g)c vào
nó. R$i k%ch b n l nh t o m t ph!n t cho tác gi , tiêu , và nhà xu t b n cho m*i cu)n sách và thêm m t nút v n b n
vào m*i nút ó. B c cu)i cùng cho m*i nút book là g#n nó l i vào nút books g)c.

 o n cu)i c a k%ch b n l nh xu t XML ra b n i u khi n nh/ ph ng th c saveXML. ((B n c ng có th s d ng
ph ng th c save (ghi l i) t o m t t p t, XML.) !u ra c a k%ch b n l nh hi n th% trong Li t kê 6.

Li t kê 6. K t qu                       u ra t k ch b n l nh xây d ng DOM
   H                A(
       )#       F                  .@(1.




   H


Giá tr% th c c a vi c s d ng DOM là nó t o XML luôn úng ng pháp. Nh ng b n có th làm gì n u b n không có
quy n truy c p DOM t o XML?




Vi t XML b ng PHP
N u không có s n DOM, b n có th s d ng khuôn m u v n b n PHP                                  vi t XML. Li t kê 7 hi n th% cách PHP xây
d ng nên t p XML các sách.

Li t kê 7. Vi t XML các sách b ng PHP

                                   $%&
                    89                $
                                                  6
                                                                  6
                                    .                 .
   %&
                    89                   $
                                                                  6
                                                                  6
                                    .                 .
   %&




   /                $                                     %
   0
c và vi t XML DOM v i PHP                                                                                                Page 7 of 8


                           $               8             9 %&
                               $               8           9 %&

                                   $                8                 9 %&



   4




Ph!n trên !u c a k%ch b n l nh t ng t nh k%ch b n l nh DOM. Ph!n cu)i c a k%ch b n l nh m ra th( books, sau
 ó l p l i qua m*i cu)n, t o th( book và toàn b các th( title, author, và publisher.

V n     )i v i ti p c n này là vi c mã hoá các th c th .  ch#c ch#n r ng th c th                         c mã hoá úng cách, hàm
htmlentities ph i        c g i trên m*i m c, nh trong Li t kê 8.

Li t kê 8. S d ng hàm htmlentities                           mã hoá các th c th



   /      $                                    %
   0
               #                   $                8             96 *-,5I; ,*? %&
                   #                   $             8              96 *-,5I; ,*? %&
                       #                       $         8                96 *-,5I; ,*? %&


                           $                   %&
                               $                    %&
                                   $                         %&



   4




  ây là lý do nó l i làm phi n n vi c vi t XML trong PHP c s . B n ngh& r ng b n ang t o XML hoàn h o, nh ng
sau ó b n nh n th y là m t s) ph!n t nào ó không       c mã hoá úng cách khi c) g#ng ch y nó v i d li u th c.




K t lu n
Quanh XML luôn có nhi u c /ng i u và l n x n. Tuy nhiên, nó không khó kh n nh b n ngh& -- nh t là trong m t
ngôn ng l n nh PHP. Khi b n hi u và th c hi n XML úng cách, b n s th y có nhi u công c m nh mà b n có th
s d ng. XPath và XSLT là hai công c áng th nghi m.



Tài nguyên
H ct p
     Tìm hi u v các tiêu chu+n dùng cho XHTML t i XHTML 1.0, Ngôn ng                               ánh d u Siêu v n b n M r ng.

       Tìm các tiêu chu+n dùng cho XML.

       Tìm hi u v ngôn ng                      / d n XML.
                                                ng

       Tìm hi u v các phép chuy n                        i XSL, m t ngôn ng dùng        bi n   i XML.

         c tiêu chu+n dùng                     % ngh&a c u trúc c a các tài li u XML c a b n, L
                                               nh                                                       c $ XML.
c và vi t XML DOM v i PHP                                                                          Page 8 of 8


      Tìm nhi u tài nguyên h n cho các nhà phát tri n XML trong vùng XML c a developerWorks.

      Hãy th m developerWorks Open source zone có thông tin h ng d n cách làm sâu h n, công c , và các c p
      nh t d án giúp b n phát tri n v i các công ngh mã ngu$n m và s d ng chúng v i các s n ph+m c a
      IBM.


L y s n ph m và công ngh
      Hãy th m PHP.net tìm hi u các tin t c m i nh t v PHP, tìm các t i v , và h c t p t, nh ng ng / dùng
                                                                                                    i
      khác.

      Tìm hi u v b Phân tích cú pháp XML Expat, b phân tích mà       c s d ng    cung c p các ch c n ng b
      phân tích cú pháp SAX dùng cho PHP.

         i m i d án phát tri n mã ngu$n m ti p theo c a b n v i ph!n m m dùng th c a IBM, s n có    t iv
      ho c trên &a DVD.


Th o lu n
      Tham gia c ng $ng developerWorks b ng cách gia nh p vào các blog c a developerWorks.



  ôi nét v tác gi
Jack D. Herrington là k s ph!n m m cao c p v i h n 20 n m kinh nghi m. Ông là tác gi c a ba cu)n sách: Code
Generation in Action, Podcasting Hacks và PHP Hacks. Ông c ng ã vi t h n 30 bài báo.

More Related Content

Viewers also liked

L'émotion vecteur d'interaction sur les réseaux sociaux
L'émotion vecteur d'interaction sur les réseaux sociauxL'émotion vecteur d'interaction sur les réseaux sociaux
L'émotion vecteur d'interaction sur les réseaux sociauxNineteen Groupe
 
GEAR PULLY - LEAD SCREW-Layout1
GEAR PULLY - LEAD SCREW-Layout1GEAR PULLY - LEAD SCREW-Layout1
GEAR PULLY - LEAD SCREW-Layout1Kristopher Thorpe
 
Propostas trazidas e debatidas pelo povo zedoquense
Propostas trazidas e debatidas pelo povo zedoquensePropostas trazidas e debatidas pelo povo zedoquense
Propostas trazidas e debatidas pelo povo zedoquensePeter Dorner
 
Crónica pasaporte á india
Crónica pasaporte á indiaCrónica pasaporte á india
Crónica pasaporte á indiasatelite1
 
La communication politique et internet
La communication politique et internetLa communication politique et internet
La communication politique et internetAlexandre Martin
 
06 Es afusellamnts de la Moncloa
06 Es afusellamnts de la Moncloa06 Es afusellamnts de la Moncloa
06 Es afusellamnts de la MoncloaRamon Pujola
 
Amélioration continue et PDCA
Amélioration continue et PDCAAmélioration continue et PDCA
Amélioration continue et PDCASoulaima Ben salem
 
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dongHaiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dongGiang Nguyễn
 
New 2010 Presentation
New 2010 PresentationNew 2010 Presentation
New 2010 Presentationiaindavis
 

Viewers also liked (20)

certificate
certificatecertificate
certificate
 
Finalcontents
FinalcontentsFinalcontents
Finalcontents
 
Publicidadcreativa
PublicidadcreativaPublicidadcreativa
Publicidadcreativa
 
Evolucion Web
Evolucion WebEvolucion Web
Evolucion Web
 
L'émotion vecteur d'interaction sur les réseaux sociaux
L'émotion vecteur d'interaction sur les réseaux sociauxL'émotion vecteur d'interaction sur les réseaux sociaux
L'émotion vecteur d'interaction sur les réseaux sociaux
 
Matemática - Cones
Matemática - ConesMatemática - Cones
Matemática - Cones
 
GEAR PULLY - LEAD SCREW-Layout1
GEAR PULLY - LEAD SCREW-Layout1GEAR PULLY - LEAD SCREW-Layout1
GEAR PULLY - LEAD SCREW-Layout1
 
Prevision samedi 17 mai 2014
Prevision samedi 17 mai 2014Prevision samedi 17 mai 2014
Prevision samedi 17 mai 2014
 
Propostas trazidas e debatidas pelo povo zedoquense
Propostas trazidas e debatidas pelo povo zedoquensePropostas trazidas e debatidas pelo povo zedoquense
Propostas trazidas e debatidas pelo povo zedoquense
 
Tablette Android pratique
Tablette Android pratiqueTablette Android pratique
Tablette Android pratique
 
Crónica pasaporte á india
Crónica pasaporte á indiaCrónica pasaporte á india
Crónica pasaporte á india
 
La communication politique et internet
La communication politique et internetLa communication politique et internet
La communication politique et internet
 
06 Es afusellamnts de la Moncloa
06 Es afusellamnts de la Moncloa06 Es afusellamnts de la Moncloa
06 Es afusellamnts de la Moncloa
 
04 Casa Kaufmann
04 Casa Kaufmann04 Casa Kaufmann
04 Casa Kaufmann
 
Amélioration continue et PDCA
Amélioration continue et PDCAAmélioration continue et PDCA
Amélioration continue et PDCA
 
La messagerie La Poste.net
La messagerie La Poste.netLa messagerie La Poste.net
La messagerie La Poste.net
 
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dongHaiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
 
Fiatomoram-pamokarana fitoloha
Fiatomoram-pamokarana fitolohaFiatomoram-pamokarana fitoloha
Fiatomoram-pamokarana fitoloha
 
Пригороды Владимира: куда плыть?
Пригороды Владимира: куда плыть?Пригороды Владимира: куда плыть?
Пригороды Владимира: куда плыть?
 
New 2010 Presentation
New 2010 PresentationNew 2010 Presentation
New 2010 Presentation
 

Similar to Os xmldomphp

Html vnn canban
Html vnn canbanHtml vnn canban
Html vnn canbanhieusy
 
Thiết kế dữ liệu
Thiết kế dữ liệuThiết kế dữ liệu
Thiết kế dữ liệuNguyen Tran
 
C++ can ban(dung thu vien iostream)
C++ can ban(dung thu vien iostream)C++ can ban(dung thu vien iostream)
C++ can ban(dung thu vien iostream)Nguyễn Phụng
 
Tin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4uTin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4uXephang Daihoc
 
Access 18 263_634034061782634040
Access 18 263_634034061782634040Access 18 263_634034061782634040
Access 18 263_634034061782634040Học Huỳnh Bá
 
Đề tài Tìm hiểu HTML5, CSS3, thiết kết website tin tức
Đề tài Tìm hiểu HTML5, CSS3, thiết kết website tin tứcĐề tài Tìm hiểu HTML5, CSS3, thiết kết website tin tức
Đề tài Tìm hiểu HTML5, CSS3, thiết kết website tin tứcHoward Brakus
 
Giáo trình lập trình C
Giáo trình lập trình CGiáo trình lập trình C
Giáo trình lập trình CFreelancer
 
Chuong 02. gioi thieu ngon ngu r
Chuong 02.  gioi thieu ngon ngu rChuong 02.  gioi thieu ngon ngu r
Chuong 02. gioi thieu ngon ngu rTtx Love
 
Chuong 02. gioi thieu ngon ngu r
Chuong 02.  gioi thieu ngon ngu rChuong 02.  gioi thieu ngon ngu r
Chuong 02. gioi thieu ngon ngu rTtx Love
 

Similar to Os xmldomphp (19)

Html vnn canban
Html vnn canbanHtml vnn canban
Html vnn canban
 
Thiết kế dữ liệu
Thiết kế dữ liệuThiết kế dữ liệu
Thiết kế dữ liệu
 
Tự học jsp !​
Tự học jsp !​Tự học jsp !​
Tự học jsp !​
 
Kiem tra Javasrctip
Kiem tra JavasrctipKiem tra Javasrctip
Kiem tra Javasrctip
 
C++ can ban(dung thu vien iostream)
C++ can ban(dung thu vien iostream)C++ can ban(dung thu vien iostream)
C++ can ban(dung thu vien iostream)
 
C++ can ban
C++ can banC++ can ban
C++ can ban
 
Tin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4uTin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4u
 
Semantic Web Intro
Semantic Web IntroSemantic Web Intro
Semantic Web Intro
 
Os php-7oohabits
Os php-7oohabitsOs php-7oohabits
Os php-7oohabits
 
Pascal 2
Pascal 2Pascal 2
Pascal 2
 
Java script
Java scriptJava script
Java script
 
Lesson 2 lý thuyết
Lesson 2 lý thuyếtLesson 2 lý thuyết
Lesson 2 lý thuyết
 
Access 18 263_634034061782634040
Access 18 263_634034061782634040Access 18 263_634034061782634040
Access 18 263_634034061782634040
 
Đề tài Tìm hiểu HTML5, CSS3, thiết kết website tin tức
Đề tài Tìm hiểu HTML5, CSS3, thiết kết website tin tứcĐề tài Tìm hiểu HTML5, CSS3, thiết kết website tin tức
Đề tài Tìm hiểu HTML5, CSS3, thiết kết website tin tức
 
Giáo trình lập trình C
Giáo trình lập trình CGiáo trình lập trình C
Giáo trình lập trình C
 
Css coban
Css cobanCss coban
Css coban
 
Thuchanh unix moi
Thuchanh unix moiThuchanh unix moi
Thuchanh unix moi
 
Chuong 02. gioi thieu ngon ngu r
Chuong 02.  gioi thieu ngon ngu rChuong 02.  gioi thieu ngon ngu r
Chuong 02. gioi thieu ngon ngu r
 
Chuong 02. gioi thieu ngon ngu r
Chuong 02.  gioi thieu ngon ngu rChuong 02.  gioi thieu ngon ngu r
Chuong 02. gioi thieu ngon ngu r
 

More from Giang Nguyễn

Php can ban_bai1_laptrinhwebphp.com
Php can ban_bai1_laptrinhwebphp.comPhp can ban_bai1_laptrinhwebphp.com
Php can ban_bai1_laptrinhwebphp.comGiang Nguyễn
 
Lap trinh web dong voi php my sql
Lap trinh web dong voi php my sqlLap trinh web dong voi php my sql
Lap trinh web dong voi php my sqlGiang Nguyễn
 
Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01Giang Nguyễn
 
Hay php architect eav modeling
Hay php architect   eav modelingHay php architect   eav modeling
Hay php architect eav modelingGiang Nguyễn
 
Haiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysqlHaiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysqlGiang Nguyễn
 
Haiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sqlHaiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sqlGiang Nguyễn
 
Joomla administratormanual vi_20060206
Joomla administratormanual vi_20060206Joomla administratormanual vi_20060206
Joomla administratormanual vi_20060206Giang Nguyễn
 
Canbanvethietkevalaptrinhgame
CanbanvethietkevalaptrinhgameCanbanvethietkevalaptrinhgame
CanbanvethietkevalaptrinhgameGiang Nguyễn
 
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menuBuilding websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menuGiang Nguyễn
 
Eclipse pdt indigo release review
Eclipse pdt   indigo release reviewEclipse pdt   indigo release review
Eclipse pdt indigo release reviewGiang Nguyễn
 
Bai tap lap trinh web voi joomla csau
Bai tap   lap trinh web voi joomla csauBai tap   lap trinh web voi joomla csau
Bai tap lap trinh web voi joomla csauGiang Nguyễn
 
1.5 installation manual_version_0.5
1.5 installation manual_version_0.51.5 installation manual_version_0.5
1.5 installation manual_version_0.5Giang Nguyễn
 
01.chương trình tiếng anh giao tiếp thương mại tại trường đại học kinh tế tp....
01.chương trình tiếng anh giao tiếp thương mại tại trường đại học kinh tế tp....01.chương trình tiếng anh giao tiếp thương mại tại trường đại học kinh tế tp....
01.chương trình tiếng anh giao tiếp thương mại tại trường đại học kinh tế tp....Giang Nguyễn
 

More from Giang Nguyễn (20)

Php can ban_bai1_laptrinhwebphp.com
Php can ban_bai1_laptrinhwebphp.comPhp can ban_bai1_laptrinhwebphp.com
Php can ban_bai1_laptrinhwebphp.com
 
Lap trinh web dong voi php my sql
Lap trinh web dong voi php my sqlLap trinh web dong voi php my sql
Lap trinh web dong voi php my sql
 
Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01
 
Php day4
Php day4Php day4
Php day4
 
Hay php architect eav modeling
Hay php architect   eav modelingHay php architect   eav modeling
Hay php architect eav modeling
 
Haiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysqlHaiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysql
 
Bai th08 php voi csdl
Bai th08 php voi csdlBai th08 php voi csdl
Bai th08 php voi csdl
 
Haiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sqlHaiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sql
 
Hd lap pttkht2008
Hd lap pttkht2008Hd lap pttkht2008
Hd lap pttkht2008
 
Joomla administratormanual vi_20060206
Joomla administratormanual vi_20060206Joomla administratormanual vi_20060206
Joomla administratormanual vi_20060206
 
Canbanvethietkevalaptrinhgame
CanbanvethietkevalaptrinhgameCanbanvethietkevalaptrinhgame
Canbanvethietkevalaptrinhgame
 
C1
C1C1
C1
 
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menuBuilding websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
 
Eclipse pdt indigo release review
Eclipse pdt   indigo release reviewEclipse pdt   indigo release review
Eclipse pdt indigo release review
 
Bai tap lap trinh web voi joomla csau
Bai tap   lap trinh web voi joomla csauBai tap   lap trinh web voi joomla csau
Bai tap lap trinh web voi joomla csau
 
Analyse
AnalyseAnalyse
Analyse
 
Bai1
Bai1Bai1
Bai1
 
1.5 installation manual_version_0.5
1.5 installation manual_version_0.51.5 installation manual_version_0.5
1.5 installation manual_version_0.5
 
01.chương trình tiếng anh giao tiếp thương mại tại trường đại học kinh tế tp....
01.chương trình tiếng anh giao tiếp thương mại tại trường đại học kinh tế tp....01.chương trình tiếng anh giao tiếp thương mại tại trường đại học kinh tế tp....
01.chương trình tiếng anh giao tiếp thương mại tại trường đại học kinh tế tp....
 
16 hoangnamhai
16 hoangnamhai16 hoangnamhai
16 hoangnamhai
 

Os xmldomphp

  • 1. c và vi t XML DOM v i PHP Page 1 of 8 c và vi t XML DOM v i PHP ! M c : Trung bình Jack Herrington, T ng biên t p, Code Generation Network 08 01 2010 Các k thu t myriad s n có c và vi t XML trong PHP. Bài vi t này trình bày ba ph ng th c c XML: s d ng th vi n DOM, s d ng b phân tích cú pháp SAX, và s d ng các bi u th c chính quy. Vi c vi t XML b ng cách s d ng DOM và khuôn m u v n b n PHP c ng s c c p. Vi c c và vi t Ngôn ng ánh d u M r ng (XML) trong PHP hình nh h i áng ng i. Trong th c t , XML và t t c các công ngh liên quan c a nó có th là n ng n . Tuy nhiên, c và vi t XML trong PHP không ph i là m t tác v áng ng i. Tr c tiên, b n c!n ph i h c m t chút v XML -- nó là gì và s d ng vào âu. Sau ó, b n c!n ph i h c cách c và vi t XML trong PHP, nh ng th mà b n có th th c hi n b ng nhi u cách. Bài vi t này cung c p bài h c v" lòng ng#n trên XML r$i gi i thích cách c và vi t XML trong PHP. XML là gì? XML là m t %nh d ng l u tr d li u. Nó không %nh ngh&a d li u nào ang c ghi l i ho c c u trúc c a d li u ó. XML ch' %nh ngh&a các th( và thu c tính cho các th( ó. M t th( XML có d ng úng trông gi)ng nh th này: <name>Jack Herrington</name> Th( <name> này ch a m t s) v n b n: Jack Herrington. M t th( XML mà không ch a v n b n trông gi)ng nh th này: <powerUp /> Có th có nhi u cách h n mã hoá m t i u gì ó trong XML. Ví d , th( này t o cùng m t !u ra nh th( tr c: <powerUp></powerUp> B n c ng có th b sung các thu c tính vào m t th( XML. Thí d , th( <name> này ch a các thu c tính u tiên và cu i cùng: <name first="Jack" last="Herrington" /> B n c ng có th mã hoá các ký t c bi t trong XML. Thí d , m t ký hi u ampersand (&) c mã hoá nh th này: & M t tài li u XML ch a các th( và thu c tính c %nh d ng nh các thí d ã cho là úng ng pháp, ngh&a là các th( c cân )i, và các ký t c mã hoá úng cách. Li t kê 1 là m t thí d v XML úng ng pháp. Li t kê 1. M t thí d v m c l c XML các sách
  • 2. c và vi t XML DOM v i PHP Page 2 of 8 XML trong Li t kê 1 ch a m t danh m c c a các cu)n sách. Th( cha <books> (các sách) g$m m t t p h p các th( <book> (sách), m*i th( ch a các th( <author> (tác gi ), <title> (tiêu ), và <publisher> (nhà xu t b n). Các tài li u XML là h p l khi c u trúc c a các th( và n i dung c a chúng c xác th c b i m t t p l c $ bên ngoài. T p l c $ có th c xác %nh trong m t lo t các %nh d ng. Nh m ph c v bài vi t này, t t c m i th b n c!n là XML úng ng pháp. N u b n ngh& r ng XML trong r t gi)ng Ngôn ng ánh d u Siêu v n b n (HTML) thì b n ã úng. C XML và HTML là ngôn ng d a trên các th(, và chúng có nhi u s gi)ng nhau. Tuy nhiên, i u quan tr ng là ph i l u ý r ng trong khi các tài li u XML có th là HTML úng ng pháp, không ph i t t c các tài li u XML là HTML úng ng pháp. Th( ng#t (br) là m t ví d tuy t h o v nh ng s khác nhau gi a XML và HTML. Ng#t dòng này là HTML úng ng pháp, nh ng XML không úng ng pháp: <p>This is a paragraph<br> With a line break</p> Ng#t dòng này là XML và HTML úng ng pháp: <p>This is a paragraph<br /> With a line break</p> N u b n mu)n vi t HTML c ng là XML úng ng pháp, hãy theo chu+n Ngôn ng ánh d u Siêu v n b n M r ng (XHTML) t, World Wide Web Consortium (W3C) (xem Tài nguyên). T t c các trình duy t hi n i tr v XHTML. Ngoài ra, nó còn có th s d ng các công c XML c XHTML và tìm d li u trong các tài li u, d- h n nhi u so v i vi c phân tích cú pháp thông qua HTML. c XML b ng cách s d ng th vi n DOM Cách d- nh t c m t t p XML úng ng pháp là s d ng th vi n Mô hình )i t ng Tài li u (DOM) c biên d%ch sang m t s) cài t c a PHP. Th vi n DOM c toàn b tài li u XML sang b nh và trình bày nó nh m t cây các nút, nh minh ho trong Hình 1. Hình 1. Cây XML DOM dùng cho XML các sách Nút books t i 'nh c a cây có hai th( book con. Trong m*i cu)n sách (book) , có các nút author, publisher, và title. Các nút author, publisher, và title m*i th có các nút v n b n con ch a v n b n. B mã c t p XML các sách và hi n th% n i dung s d ng DOM hi n th% trong Li t kê 2. Li t kê 2. c XML các sách (books) v i DOM ! "! # $%& ' $ ()# %&
  • 3. c và vi t XML DOM v i PHP Page 3 of 8 ' * # + , - # $ . . %& / $ % 0 ' * # + , - # $ . . %& ' #$1%' 2 & ' * # + , - # $ . . %& ' #$1%' 2 & ' * # + , - # $ . . %& ' #$1%' 2 & . ' ' 3 .& 4 K%ch b n l nh kh i ng b ng cách t o m t )i t ng new DOMdocument và n p XML các sách vào )i t ng ó thông qua s d ng ph ng th c load. Sau ó k%ch b n l nh s d ng ph ng th c getElementsByName nh n m t danh m c t t c các ph!n t v i tên cho tr c. Trong vòng l p c a các nút book, k%ch b n l nh s d ng ph ng th c getElementsByName nh n nodeValue cho các th( author, publisher, và title. nodeValue là v n b n trong nút. Sau ó k%ch b n l nh hi n th% các giá tr% ó. B n có th ch y k%ch b n l nh PHP trên dòng l nh nh th này: % php e1.php PHP Hacks - Jack Herrington - O'Reilly Podcasting Hacks - Jack Herrington - O'Reilly % Nh b n th y, m t dòng c in ra cho m*i kh)i sách. ó là m t xu t phát t)t. Tuy nhiên, i u gì x y ra n u b n không có quy n truy c p n th vi n XML DOM? c XML thông qua s d ng b phân tích cú pháp SAX M t cách khác c XML là s d ng API n gi n cho b phân tích cú pháp XML (SAX). H!u h t t t c các cài t c a PHP có b phân tích cú pháp SAX. B phân tích cú pháp SAX ch y trên mô hình g i l i. M*i khi m t th( c m ra ho c óng l i, ho c b t k. lúc nào b phân tích cú pháp trông th y m t v n b n nào ó, nó th c hi n các cu c g i l i n m t s) hàm do ng /i dùng %nh ngh&a v i các thông tin nút ho c v n b n. L i th c a m t b phân tích cú pháp SAX là ch* nó th c s nh0. B phân tích cú pháp không gi l i quá lâu b t k. cái gì trong b nh , cho nên nó có th c dùng cho các t p c c l n. Nh c i m là ch* vi c vi t các cu c g i l i b phân tích cú pháp SAX là m t i u quá phi n ph c. Li t kê 3 hi n th% b mã c t p XML các sách và hi n th% n i dung thông qua s d ng SAX. Li t kê 3. c XML các sách v i b phân tích cú pháp SAX 5 $%& 5 # & / * # $ 6 # 6 % 0 5 6 5 #& / $ # + 7 % 5 89 $%& 5 # # & 4 / * # $ 6 # % 0 5 #& 5 # & 4
  • 4. c và vi t XML DOM v i PHP Page 4 of 8 / ) ! $ 6 ) % 0 5 6 5 #& / $ 5 # :;, << 5 # ;+=>? * << 5 # ,>,=* % 0 5 8 $ 5 % ' @ 98 5 # 9 ) & 4 4 )# 5 5 $%& )# 5 5 # 5 $ 6 . * # .6 . * # . %& )# 5 5 5 5 $ 6 . ) ! . %& / / $ ()# 6 %& $ / $ /6 A1BC % % 0 )# 5 $ 6 %& 4 )# 5 5/ $ %& / $ 5 % 0 8 ,>,=* 9(. ' .( 8 :;, 9(. ' .& 8 ;+=>? * 9(.3 .& 4 K%ch b n l nh kh i ng b ng cách thi t l p m ng g_books, gi l i t t c các cu)n sách và thông tin c a chúng trong b nh , và bi n g_elem, ghi l i tên c a th( mà k%ch b n l nh hi n ang x lý. Sau ó k%ch b n l nh %nh ngh&a các hàm g i l i. Trong thí d này, các hàm g i l i là startElement, endElement, và textData. Hàm startElement và endElement c g i ra khi các th( c m và óng t ng ng. Hàm textData c c g i trên v n b n gi a kh i ng và k t thúc các th(. Trong thí d này, th( startElement tìm ki m th( book kh i ng m t ph!n t m i trong m ng book. Sau ó, hàm textData xem xét ph!n t hi n t i xem nó là m t th( publisher, title, ho c author. N u nh v y thì hàm ó a v n b n hi n t i vào cu)n sách hi n t i. vi c phân tích cú pháp c th c hi n, k%ch b n l nh t o b phân tích cú pháp v i hàm xml_parser_create. Ti p theo, nó thi t t các b x lý g i l i. Sau ó k%ch b n l nh c trong t p và g i các m ng thông tin c a t p n b phân tích cú pháp. Sau khi t p c c, hàm xml_parser_free xoá b1 b phân tích cú pháp. Ph!n cu)i c a k%ch b n l nh xu t ra n i dung c a g_books. Nh b n th y, ây là b mã cho phép vi t v ng chãi h n nhi u so v i d ng t ng ng DOM. N u b n không có th vi n DOM ho c th vi n SAX thì sao? Có ph ng án nào khác không? Phân tích cú pháp XML v i các bi u th c chính quy Ch#c ch#n tôi b% m t s) k s chê vì c p ti p c n này, nh ng b n có th phân tích cú pháp XML b ng các bi u th c chính quy. Li t kê 4 cho th y m t thí d c a vi c s d ng hàm preg_ c t p các sách. Li t kê 4. c XML các sách v i các bi u th c chính quy )# ..& / / $ ()# 6 %& $ / $ /6 A1BC % % 0 )# ( & 4 / $ / %& 5# 5 $ . 3 3 $(D %3 3 3 .6 )# 6 %& / $ 8@9 %
  • 5. c và vi t XML DOM v i PHP Page 5 of 8 0 5# 5 $ . 3 3 $(D %3 3 3 .6 6 %& 5# 5 $ . 3 3 $(D %3 3 3 .6 6 %& 5# 5 $ . 3 3 $(D %3 3 3 .6 6 %& $ 8@9819(. ' .( 8@9819(. ' .( 8@9819(.3 . %& 4 L u ý r ng b mã ó ng#n nh th nào. Nó kh i ng b ng cách c t p vào m t chu*i l n. Sau ó nó s d ng m t hàm regex (hàm bi u th c chính quy) c trong m*i m c sách. Cu)i cùng, b ng cách s d ng vòng l p foreach, k%ch b n l nh l p m*i kh)i sách và ch n ra tác gi , tiêu , và nhà xu t b n. V y thì âu là nh c i m? V n )i v i vi c s d ng b mã bi u th c chính quy c XML là nó không ki m tra tr c ch#c ch#n r ng XML úng ng pháp. Có ngh&a là b n không th bi t là b n có XML không úng ng pháp tr c khi b n b#t !u c nó. Ngoài ra, m t s) d ng m u h p l c a các bi u th c chính quy không th phù h p v i XML c a b n, do ó b n s ph i s a i chúng sau. Tôi không bao gi/ khuyên s d ng các bi u th c chính quy c XML, nh ng ôi khi nó là cách thích h p nh t vì các hàm bi u th c chính quy luôn s n có dùng. ,ng s d ng bi u th c chính quy c XML t, tr c ti p ng /i dùng; b n không i u khi n khuôn d ng ho c c u trúc c a XML ó. Hãy luôn c XML t, ng /i dùng b ng cách s d ng m t th vi n DOM ho c b phân tích cú pháp SAX. Vi t XML b ng DOM c XML ch' là m t ph!n c a ph ng trình. Vi t nó thì sao nh'? Cách t)t nh t vi t XML là s d ng DOM. Li t kê 5 hi n th% cách DOM xây d ng t p XML các sách. Li t kê 5. Vi t XML các sách b ng DOM $%& 89 $ 6 6 . . %& 89 $ 6 6 . . %& ! "! # $%& ' / # & ' * # $ . . %& ' E $ %& / $ % 0 ' * # $ . . %& ' * # $ . . %& ' E $ ' , ) - $ 8 9 % %& ' E $ %& ' * # $ . . %& ' E $ ' , ) - $ 8 9 % %& ' E $ %& ' * # $ . . %& ' E $
  • 6. c và vi t XML DOM v i PHP Page 6 of 8 ' , ) - $ 8 9 % %& ' E $ %& ' E $ %& 4 ' F G"=$%& T i ph!n trên !u c a k%ch b n l nh, m ng books c n p vào v i m t s) sách m u. Các d li u ó có th t, ng /i dùng ho c t, m t c s d li u. Sau khi các cu)n sách m u c n p, k%ch b n l nh t o m t new DOMDocument m i và b sung nút books g)c vào nó. R$i k%ch b n l nh t o m t ph!n t cho tác gi , tiêu , và nhà xu t b n cho m*i cu)n sách và thêm m t nút v n b n vào m*i nút ó. B c cu)i cùng cho m*i nút book là g#n nó l i vào nút books g)c. o n cu)i c a k%ch b n l nh xu t XML ra b n i u khi n nh/ ph ng th c saveXML. ((B n c ng có th s d ng ph ng th c save (ghi l i) t o m t t p t, XML.) !u ra c a k%ch b n l nh hi n th% trong Li t kê 6. Li t kê 6. K t qu u ra t k ch b n l nh xây d ng DOM H A( )# F .@(1. H Giá tr% th c c a vi c s d ng DOM là nó t o XML luôn úng ng pháp. Nh ng b n có th làm gì n u b n không có quy n truy c p DOM t o XML? Vi t XML b ng PHP N u không có s n DOM, b n có th s d ng khuôn m u v n b n PHP vi t XML. Li t kê 7 hi n th% cách PHP xây d ng nên t p XML các sách. Li t kê 7. Vi t XML các sách b ng PHP $%& 89 $ 6 6 . . %& 89 $ 6 6 . . %& / $ % 0
  • 7. c và vi t XML DOM v i PHP Page 7 of 8 $ 8 9 %& $ 8 9 %& $ 8 9 %& 4 Ph!n trên !u c a k%ch b n l nh t ng t nh k%ch b n l nh DOM. Ph!n cu)i c a k%ch b n l nh m ra th( books, sau ó l p l i qua m*i cu)n, t o th( book và toàn b các th( title, author, và publisher. V n )i v i ti p c n này là vi c mã hoá các th c th . ch#c ch#n r ng th c th c mã hoá úng cách, hàm htmlentities ph i c g i trên m*i m c, nh trong Li t kê 8. Li t kê 8. S d ng hàm htmlentities mã hoá các th c th / $ % 0 # $ 8 96 *-,5I; ,*? %& # $ 8 96 *-,5I; ,*? %& # $ 8 96 *-,5I; ,*? %& $ %& $ %& $ %& 4 ây là lý do nó l i làm phi n n vi c vi t XML trong PHP c s . B n ngh& r ng b n ang t o XML hoàn h o, nh ng sau ó b n nh n th y là m t s) ph!n t nào ó không c mã hoá úng cách khi c) g#ng ch y nó v i d li u th c. K t lu n Quanh XML luôn có nhi u c /ng i u và l n x n. Tuy nhiên, nó không khó kh n nh b n ngh& -- nh t là trong m t ngôn ng l n nh PHP. Khi b n hi u và th c hi n XML úng cách, b n s th y có nhi u công c m nh mà b n có th s d ng. XPath và XSLT là hai công c áng th nghi m. Tài nguyên H ct p Tìm hi u v các tiêu chu+n dùng cho XHTML t i XHTML 1.0, Ngôn ng ánh d u Siêu v n b n M r ng. Tìm các tiêu chu+n dùng cho XML. Tìm hi u v ngôn ng / d n XML. ng Tìm hi u v các phép chuy n i XSL, m t ngôn ng dùng bi n i XML. c tiêu chu+n dùng % ngh&a c u trúc c a các tài li u XML c a b n, L nh c $ XML.
  • 8. c và vi t XML DOM v i PHP Page 8 of 8 Tìm nhi u tài nguyên h n cho các nhà phát tri n XML trong vùng XML c a developerWorks. Hãy th m developerWorks Open source zone có thông tin h ng d n cách làm sâu h n, công c , và các c p nh t d án giúp b n phát tri n v i các công ngh mã ngu$n m và s d ng chúng v i các s n ph+m c a IBM. L y s n ph m và công ngh Hãy th m PHP.net tìm hi u các tin t c m i nh t v PHP, tìm các t i v , và h c t p t, nh ng ng / dùng i khác. Tìm hi u v b Phân tích cú pháp XML Expat, b phân tích mà c s d ng cung c p các ch c n ng b phân tích cú pháp SAX dùng cho PHP. i m i d án phát tri n mã ngu$n m ti p theo c a b n v i ph!n m m dùng th c a IBM, s n có t iv ho c trên &a DVD. Th o lu n Tham gia c ng $ng developerWorks b ng cách gia nh p vào các blog c a developerWorks. ôi nét v tác gi Jack D. Herrington là k s ph!n m m cao c p v i h n 20 n m kinh nghi m. Ông là tác gi c a ba cu)n sách: Code Generation in Action, Podcasting Hacks và PHP Hacks. Ông c ng ã vi t h n 30 bài báo.