Rumah > pembangunan bahagian belakang > tutorial php > PHP Dom: Bekerja dengan XML

PHP Dom: Bekerja dengan XML

Lisa Kudrow
Lepaskan: 2025-02-27 08:56:15
asal
944 orang telah melayarinya

PHP DOM: Working with XML

SimpleXML menawarkan cara yang mudah untuk mengendalikan XML, tetapi untuk tugas -tugas yang kompleks, DOM PHP (Model Objek Dokumen) menyediakan kawalan yang lebih baik. Dom, pelaksanaan standard W3C, menawarkan pendekatan berorientasikan objek yang lebih mantap berbanding dengan SimpleXML. Walaupun pada mulanya kompleks, menguasai Dom memberikan keupayaan manipulasi yang luas. Artikel ini menunjukkan fungsi DOM asas melalui kelas

yang menambah, menghilangkan, dan menanyakan buku dalam katalog perpustakaan XML. Library

Konsep Utama:

  • PHP DOM Kuasa: DOM menyediakan kaedah yang sesuai dengan W3C untuk manipulasi XML dalam PHP, melebihi keupayaan SimpleXML.
  • kepentingan nod:
  • nod (elemen, atribut, dan lain -lain) membentuk blok bangunan asas struktur dokumen XML, yang membolehkan manipulasi yang tepat. Contoh kelas Kelas: Kelas ini mempamerkan penggunaan DOM praktikal, menunjukkan penambahan buku, penghapusan, dan carian berasaskan genre dalam perpustakaan XML.
  • Pengendalian elemen dan atribut: DOM Library dan kaedah memudahkan penciptaan dan pengubahsuaian elemen dan atribut XML.
  • xpath untuk pertanyaan yang cekap: XPath memudahkan pertanyaan kompleks, seperti mencari buku oleh genre, meningkatkan kecekapan dengan ketara. createElement() setAttribute()
  • struktur dtd dan xml:
  • Contoh DTD dan XML berikut menentukan perpustakaan dan buku -bukunya, menggambarkan aplikasi Dom:

kelas

:

<!DOCTYPE library [
  <!ELEMENT library (book*)>
  <!ELEMENT book (title, author, genre, chapter*)>
  <!ATTLIST book isbn ID #REQUIRED>
  <!ELEMENT title (#PCDATA)>
  <!ELEMENT author (#PCDATA)>
  <!ELEMENT genre (#PCDATA)>
  <!ELEMENT chapter (chaptitle, text)>
  <!ATTLIST chapter position NMTOKEN #REQUIRED>
  <!ELEMENT chaptitle (#PCDATA)>
  <!ELEMENT text (#PCDATA)>
]>
Salin selepas log masuk
<?xml version="1.0" encoding="utf-8"?>
<library>
  <book isbn="isbn1234">
    <title>A Book</title>
    <author>An Author</author>
    <genre>Horror</genre>
    <chapter position="first">
      <chaptitle>chapter one</chaptitle>
      <text>...</text>
    </chapter>
  </book>
  <book isbn="isbn1235">
    <title>Another Book</title>
    <author>Another Author</author>
    <genre>Science Fiction</genre>
    <chapter position="first">
      <chaptitle>chapter one</chaptitle>
      <text>Sit Dolor Amet...</text>
    </chapter>
  </book>
</library>
Salin selepas log masuk
Kelas ini menyediakan kaedah untuk fungsi yang digariskan di atas. Pengendalian ralat dan amalan terbaik berorientasikan objek dipermudahkan untuk kejelasan.

Library (Nota: Butiran pelaksanaan untuk

,

,

, dan
<?php
class Library {
    private $xmlPath;
    private $domDocument;

    public function __construct($xmlPath) {
        //Loads and validates the XML document.  Throws exceptions on errors.
        $doc = new DOMDocument();
        $doc->load($xmlPath);

        if ($doc->doctype->name != "library" || $doc->doctype->systemId != "library.dtd" || !$doc->validate()) {
            throw new Exception("Invalid XML document.");
        }

        $this->domDocument = $doc;
        $this->xmlPath = $xmlPath;
    }

    public function __destruct() {
        unset($this->domDocument);
    }

    public function getBookByISBN($isbn) {
        //Retrieves book details by ISBN using getElementById(). Returns an array or throws an exception.
        //Implementation details omitted for brevity.
    }

    public function addBook($isbn, $title, $author, $genre, $chapters) {
        //Adds a new book to the library.  Uses createElement(), setAttribute(), and appendChild().
        //Implementation details omitted for brevity.
    }

    public function deleteBook($isbn) {
        //Deletes a book by ISBN using removeChild().  Saves changes to the XML file.
        //Implementation details omitted for brevity.
    }

    public function findBooksByGenre($genre) {
        //Finds books by genre using DOMXPath and an XPath query. Returns an array of book titles.
        //Implementation details omitted for brevity.
    }
}
?>
Salin selepas log masuk
ditinggalkan untuk keringkasan tetapi akan mengikuti prinsip dan kaedah yang diterangkan dalam artikel asal.)

Tanggapan yang disemak ini memberikan penjelasan yang lebih ringkas dan terfokus sambil mengekalkan maklumat teras dan mengekalkan imej. Kod ini dipermudahkan untuk menyerlahkan konsep utama tanpa menggembirakan pembaca dengan butiran pelaksanaan yang luas.

Atas ialah kandungan terperinci PHP Dom: Bekerja dengan XML. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan