LoginSignup
0
1

More than 3 years have passed since last update.

PHPでXML読み込み

Last updated at Posted at 2019-06-09

全部読み込み

simplexml_import_domsimplexml_load_stringSimpleXMLElementを作る

要素へのアクセスの仕方

ストリーム

メモリを気にするならこっち

XMLReaderopenでファイルを指定して使う
XMLReader::expandを使えばDOMNodeに変換できるのでDOMDocument::importNodeDOMDocumentを作ることもできます。

$xmlReader = new XMLReader();
$xmlReader->open('test.xml', 'UTF-8', LIBXML_NOBLANKS);

while ($xmlReader->read())
{
    $xmlReader->name;
    $xmlReader->getAttribute('属性');
    $xmlReader->value;
}

$xmlObject->close();

その他

XXE対策

libxmlのバージョンによっては外部実体参照がデフォルトで無効になっていないものがる。

libxml_disable_entity_loader

CDATA

XMLの要素には、特殊文字を直接記述することができない。
直接記述したい場合は<![CDATA[]]>を記載することでその間に記述することは可能。(間に終了の]]>を含めることは出来ない)
<![CDATA[]]>を使わない場合はエスケープする。

<element><![CDATA[XXXXXXXXXX<p>XXXXXXXXXX]]></element>
<element>XXXXXXXXXX&lt;p&gt;XXXXXXXXXX</element>
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1