PHP

PHPでXML読み込み


全部読み込み

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