{category}

PHP - XML

DOM

ドム(ネットワーク・API・データ交換

意味 XMLやHTMLを扱うための標準API


DOMとは?

DOMは、Document Object Modelの略で、XMLやHTMLドキュメントを扱うための標準APIです。PHPのDOM拡張は、このAPIを実装しており、XMLやHTMLの要素、属性、テキストなどを操作するための豊富な機能を提供します。

DOMの具体的な使い方

DOMでXMLの解析と操作


$xml = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<library>
  <book>
    <title>PHP実践プログラミング</title>
    <author>鈴木一郎</author>
    <published_year>2022</published_year>
  </book>
  <book>
    <title>Webアプリケーション開発入門</title>
    <author>佐藤二郎</author>
    <published_year>2021</published_year>
  </book>
</library>
XML;

$dom = new DOMDocument();
$dom->loadXML($xml);

// 新しい本を追加
$newBook = $dom->createElement('book');
$newBook->appendChild($dom->createElement('title', 'データベース設計の基礎'));
$newBook->appendChild($dom->createElement('author', '田中三郎'));
$newBook->appendChild($dom->createElement('published_year', '2023'));
$dom->documentElement->appendChild($newBook);

// すべての本の情報を表示
$books = $dom->getElementsByTagName('book');
foreach ($books as $book) {
    $title = $book->getElementsByTagName('title')->item(0)->nodeValue;
    $author = $book->getElementsByTagName('author')->item(0)->nodeValue;
    $year = $book->getElementsByTagName('published_year')->item(0)->nodeValue;
    echo "タイトル: {$title}\n";
    echo "著者: {$author}\n";
    echo "出版年: {$year}\n\n";
}

// XML形式で出力
echo $dom->saveXML();

👇出力結果

タイトル: PHP実践プログラミング
著者: 鈴木一郎
出版年: 2022

タイトル: Webアプリケーション開発入門
著者: 佐藤二郎
出版年: 2021

タイトル: データベース設計の基礎
著者: 田中三郎
出版年: 2023

<?xml version="1.0" encoding="UTF-8"?>
<library>
  <book>
    <title>PHP実践プログラミング</title>
    <author>鈴木一郎</author>
    <published_year>2022</published_year>
  </book>
  <book>
    <title>Webアプリケーション開発入門</title>
    <author>佐藤二郎</author>
    <published_year>2021</published_year>
  </book>
  <book>
    <title>データベース設計の基礎</title>
    <author>田中三郎</author>
    <published_year>2023</published_year>
  </book>
</library>

この例では、DOMを使用してXMLドキュメントを解析し、新しい要素を追加しています。まず、既存のXMLを読み込み、新しい本の情報を追加します。その後、すべての本の情報を表示し、最後に変更後のXMLを出力しています。DOMを使うと、XMLドキュメントの構造を詳細に操作でき、新しい要素の追加や既存の要素の変更が容易にできます。

DOMに関するよくある質問

Q. DOMとSimpleXMLの違いは?
A. DOMはより詳細なXML操作が可能で、複雑な構造や大規模なXMLに適しています。SimpleXMLは簡単な操作に向いていますが、DOMほど細かい制御はできません。
Q. DOMで新しい要素を追加するには?
A. createElement()メソッドで新しい要素を作成し、appendChild()メソッドで既存の要素に追加します。例:$newElement = $dom->createElement('newTag', 'content'); $rootElement->appendChild($newElement);
Q. DOMでXPathを使用できますか?
A. はい、DOMXPath クラスを使用してXPath式でXML要素を検索できます。これにより、複雑な条件での要素の選択が可能になります。

DOMが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、PHPのDOMやfile_get_contents()、json_encode()、curl_exec()、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


PHPを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!PHPはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

file_get_contents()

ファイルやURLの内容を取得

種類: HTTP リクエスト

json_encode()

PHPの値をJSON形式に変換

種類: JSON

curl_exec()

cURLセッションを実行する関数

種類: cURL

トランザクション

一連の処理をまとめる機能

種類: PDO

array_key_exists()

配列のキーの存在確認

種類: 配列関数