Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если 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, если он не был найден.

Замечание:

Доступно только в Libxml >= 2.7.8 (начиная с >= 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)
Версия libxml в виде 20605 или 20617
LIBXML_DOTTED_VERSION (string)
Версия libxml в виде 2.6.5 или 2.6.17
LIBXML_SCHEMA_CREATE (integer)
Создает со значением по умолчанию или фиксированные узлы при проверке XSD схемы

Замечание:

Доступно только в Libxml >= 2.6.14 (в PHP >= 5.5.2)

Коментарии

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(nullLIBXML_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/>
2010-02-10 01:30:58
http://php5.kiev.ua/manual/ru/libxml.constants.html
Автор:
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!
2011-02-06 01:51:20
http://php5.kiev.ua/manual/ru/libxml.constants.html
LIBXML_DOTTED_VERSION option doesn't work.
libxml version: 2.9.4

<?php

echo LIBXML_DOTTED_VERSION;
$xml = new SimpleXMLElement('<fasa_request id="1234567"/>'LIBXML_NOXMLDECL);

?>
2017-11-16 14:26:56
http://php5.kiev.ua/manual/ru/libxml.constants.html
The name of the constant LIBXML_NOENT is very misleading. Adding this flag actually causes the parser to load and insert the external entities. Omitting it leaves the tags untouched, which is probably what you want.
2021-03-24 14:10:10
http://php5.kiev.ua/manual/ru/libxml.constants.html
Автор:
If you want to save without the XML declaration, and LIBXML_NOXMLDECL doesn't work for you, you can just do this:

<?php
$doc 
= new \DOMDocument('1.0''UTF-8');
$doc->loadXML($xmlLIBXML_*);

echo 
$doc->saveXML($doc->firstElementChild);
?>

This will output the XML without the XML declaration and without using the flag.
You also don't need to do fiddly replacements and pray that it works.
2023-07-07 13:53:42
http://php5.kiev.ua/manual/ru/libxml.constants.html

    Поддержать сайт на родительском проекте КГБ