【PHP8.x】xmlEncodingプロパティの使い方

xmlEncodingプロパティの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

xmlEncodingプロパティは、DOMDocumentオブジェクトが表現するXML文書で使用されている文字エンコーディングの情報を保持するプロパティです。

このプロパティは、XML文書の冒頭にあるXML宣言、具体的には<?xml version="1.0" encoding="UTF-8"?>のように指定されるencoding属性の値を取得するために利用されます。DOMDocumentクラスのload()loadXML()メソッドなどを用いてXML文書を読み込む際、パーサーが文書内のXML宣言を解析し、そのencoding属性に指定されている文字エンコーディング名を自動的にこのプロパティに設定します。例えば、XML宣言で"UTF-8"が指定されていれば、xmlEncodingプロパティには"UTF-8"という文字列が格納されます。

もし読み込んだXML文書にXML宣言がなかったり、XML宣言があってもencoding属性が省略されていたりする場合には、このプロパティは空の文字列を返します。このプロパティの値は通常、XML文書の読み込み時に自動で設定されるため、開発者が直接変更することは稀です。XMLデータを正しく扱えているか、またはどのような文字コードで書かれているかを確認する際に参照することで、文字化けなどの問題を避けるための手がかりとして役立ちます。

構文(syntax)

1<?php
2
3// DOMDocumentオブジェクトを作成します
4$doc = new DOMDocument();
5
6// XML宣言にエンコーディングが含まれるXML文字列を読み込みます
7$doc->loadXML('<?xml version="1.0" encoding="UTF-8"?><book><title>PHP入門</title></book>');
8
9// xmlEncodingプロパティでXML宣言のエンコーディングを取得します
10// このプロパティは読み取り専用です
11$encoding = $doc->xmlEncoding;
12
13// 取得したエンコーディングを表示します
14echo $encoding; // 出力結果: UTF-8
15
16?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

?string

DOMDocument オブジェクトでロードされた XML ドキュメントのエンコーディングを文字列で返します。エンコーディングが不明な場合は null を返します。

関連コンテンツ

関連プログラミング言語

【PHP8.x】xmlEncodingプロパティの使い方 | いっしー@Webエンジニア