Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

LIBXML_COMPACT (integer)
Ativa a otimização de alocação de pequenos nodes. Isto pode tornar rápida sua aplicação sem necessitar modificar o código.

Nota:

Somente disponível na Libxml >= 2.6.21

LIBXML_DTDATTR (integer)
Padrão de atributos DTD
LIBXML_DTDLOAD (integer)
Carrega o subset externo
LIBXML_DTDVALID (integer)
Valida com o DTD
LIBXML_NOBLANKS (integer)
Remove nodes em branco
LIBXML_NOCDATA (integer)
Fundi CDATA com text nodes
LIBXML_NOEMPTYTAG (integer)
Expande tags vazias (e.g. <br/> para <br></br>)

Nota:

Esta opção está somente disponível atualmente nas funções DOMDocument::save e DOMDocument::saveXML.

LIBXML_NOENT (integer)
Substitue entidades
LIBXML_NOERROR (integer)
Suprime mensagens de erro
LIBXML_NONET (integer)
Desabilita o acesso a rede quando carregando documentos
LIBXML_NOWARNING (integer)
Suprime avisos
LIBXML_NOXMLDECL (integer)
Retira a declaração do XML quando salva o documento

Nota:

Somente disponível na Libxml >= 2.6.21

LIBXML_NSCLEAN (integer)
Remove declarações redundantes de namespaces
LIBXML_XINCLUDE (integer)
Implementa substituições XInclude
LIBXML_ERR_ERROR (integer)
A recoverable error
LIBXML_ERR_FATAL (integer)
Um erro fatal
LIBXML_ERR_NONE (integer)
Sem erros
LIBXML_ERR_WARNING (integer)
Um simples aviso
LIBXML_VERSION (integer)
Versão da libxml como 20605 ou 20617
LIBXML_DOTTED_VERSION (string)
Versão da libxml como 2.6.5 ou 2.6.17
add a note add a note

User Contributed Notes 4 notes

up
11
@oneseventeen
10 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
2
vetalstar at mail dot ru
3 years ago
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);

?>
up
0
siraic at gmail dot com
2 months ago
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.
up
-1
zachatwork at gmail dot com
11 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