定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

LIBXML_COMPACT (integer)
小さなノードを割り当てるように最適化する。アプリケーションの コードを変更することなしにスピードアップさせることができる

注意:

Libxml >= 2.6.21 でのみ有効

LIBXML_DTDATTR (integer)
デフォルトのDTD属性
LIBXML_DTDLOAD (integer)
外部サブセットをロードする
LIBXML_DTDVALID (integer)
DTDで検証する
LIBXML_HTML_NOIMPLIED (integer)
HTML_PARSE_NOIMPLIED フラグを設定する。 これは、暗黙の html/body... 要素の自動追加を無効にする。

注意:

Libxml >= 2.7.7 (PHP >= 5.4.0) でのみ有効

LIBXML_HTML_NODEFDTD (integer)
HTML_PARSE_NODEFDTD フラグを設定する。 これは、doctype が見つからないときにデフォルトの doctype を追加しないようにする。

注意:

Libxml >= 2.7.8 (PHP >= 5.4.0) でのみ有効

LIBXML_NOBLANKS (integer)
空白のノードを削除
LIBXML_NOCDATA (integer)
CDATA をテキストノードとしてマージ
LIBXML_NOEMPTYTAG (integer)
空タグを拡張する(例 <br/><br></br> にする)

注意:

このオプションは、現在 DOMDocument::save および DOMDocument::saveXML 関数でのみ有効です。

LIBXML_NOENT (integer)
エンティティを置換
LIBXML_NOERROR (integer)
エラー出力を抑制
LIBXML_NONET (integer)
ドキュメントロード時にネットワークアクセスを無効にする
LIBXML_NOWARNING (integer)
警告出力を抑制する
LIBXML_NOXMLDECL (integer)
ドキュメントの保存時に XML 宣言を削除する

注意:

Libxml >= 2.6.21 でのみ有効

LIBXML_NSCLEAN (integer)
冗長な名前空間宣言を削除する
LIBXML_PARSEHUGE (integer)
パーサでハードコーディングされたすべての制限を緩和するための XML_PARSE_HUGE フラグを設定する。 これは、ドキュメントやエンティティの再帰の最大数や テキストノードのサイズなどの制限に影響する。

注意:

Libxml >= 2.7.0 (PHP >= 5.3.2 あるいは PHP >= 5.2.12) でのみ有効

LIBXML_PEDANTIC (integer)
XML_PARSE_PEDANTIC フラグを設定する。これは、より細かいエラー報告を出す。

注意:

PHP >= 5.4.0 でのみ有効

LIBXML_XINCLUDE (integer)
XInclude 置換を実装する
LIBXML_ERR_ERROR (integer)
復帰可能なエラー
LIBXML_ERR_FATAL (integer)
致命的なエラー
LIBXML_ERR_NONE (integer)
エラーなし
LIBXML_ERR_WARNING (integer)
単純な警告
LIBXML_VERSION (integer)
20605 や 20617 のような libxml のバージョン
LIBXML_DOTTED_VERSION (string)
2.6.5または2.6.17のようなlibxmlのバージョン
LIBXML_SCHEMA_CREATE (integer)
XSD スキーマの検証時にデフォルト/固定の値ノードを作る

注意:

Libxml >= 2.6.14 (PHP >= 5.5.2) 以降で利用可能

add a note add a note

User Contributed Notes 2 notes

up
2
@oneseventeen
3 years ago
When inserting XML DOM Elements inside existing XML DOM Elements that I loaded from an XML file using the following code, none of my new elements were formatted correctly, they just showed up on one line:

<?php
$dom
= DOMDocument::load('file.xml');
$dom->formatOutput = true;
//$dom->add some new elements with child nodes somewhere inside the loaded XML using insertBefore();
$dom->saveXML();
//output: everything looks normal but the new nodes are all on one line.
?>

I found I could pass LIBXML_NOBLANKS to the load method and it would reformat the whole document, including my added stuff:
<?php
$dom
= DOMDocument::load('file.xml', LIBXML_NOBLANKS);
$dom->formatOutput = true;
//$dom->add some new elements with child nodes somewhere inside the loaded XML using insertBefore();
$dom->saveXML();
//output: everything looks newly formatted, including new nodes
?>

Hope this helps, took me hours of trial and error to figure this out!
up
-1
zachatwork at gmail dot com
4 years ago
Note: The LIBXML_NOXMLDECL constant is defined in this library but is not supported by DOMDocument (yet).

See also: http://bugs.php.net/bug.php?id=47137

<?php

print "PHP_VERSION:      ".PHP_VERSION."\n";
print
"LIBXML_VERSION:   ".LIBXML_VERSION."\n";
print
"LIBXML_NOXMLDECL: ".LIBXML_NOXMLDECL."\n";

$dom = new DomDocument();
$dom->loadXML("<foo />");

# This should work but doesn't.

print "DOMDocument doesn't honor LIBXML_NOXMLDECL:\n";
print
$dom->saveXML(null,LIBXML_NOXMLDECL);

# This works, and will still work after the above is fixed.

print "Forwards compatible workaround:\n";
$lines = explode("\n", $dom->saveXML(null, LIBXML_NOXMLDECL), 2);
if(!
preg_match('/^\<\?xml/', $lines[0]))
    print
$lines[0];
print
$lines[1];

?>

PHP_VERSION:      5.3.1-0.dotdeb.1
LIBXML_VERSION:   20632
LIBXML_NOXMLDECL: 2
DOMDocument doesn't honor LIBXML_NOXMLDECL:
<?xml version="1.0"?>
<foo/>
Forwards compatible workaround:
<foo/>
To Top