Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

LIBXML_COMPACT (entier)
Active l'optimisation de l'allocation de petits noeuds. Ceci pourrait augmenter la rapidité de votre application sans avoir besoin de changer votre code.

Note:

Seulement disponible dans Libxml >= 2.6.21

LIBXML_DTDATTR (entier)
Attribut de DTD par défaut
LIBXML_DTDLOAD (entier)
Charge le sous-ensemble externe
LIBXML_DTDVALID (entier)
Valide avec la DTD
LIBXML_HTML_NOIMPLIED (integer)
Défini le drapeau HTML_PARSE_NOIMPLIED, qui désactive l'ajout automatique des éléments html/body...

Note:

Uniquement disponible en Libxml >= 2.7.7 (depuis PHP >= 5.4.0)

LIBXML_HTML_NODEFDTD (integer)
Défini le drapeau HTML_PARSE_NODEFDTD, qui empèche l'ajout automatique d'un doctype si aucun n'est trouvé.

Note:

Only available in Libxml >= 2.7.8 (as of PHP >= 5.4.0)

LIBXML_NOBLANKS (entier)
Suppression des noeuds vides
LIBXML_NOCDATA (entier)
Fusion des CDATA en noeuds de texte
LIBXML_NOEMPTYTAG (entier)
Agrandi les balises vides (par exemple, <br/> en <br></br>)

Note:

Cette option est actuellement disponible uniquement avec les fonctions DOMDocument::save et DOMDocument::saveXML.

LIBXML_NOENT (entier)
Substitution des entités
LIBXML_NOERROR (entier)
Suppression du rapport d'erreur
LIBXML_NONET (entier)
Désactivation du réseau lors du chargement de document
LIBXML_NOWARNING (entier)
Suppression des rapports d'alerte
LIBXML_NOXMLDECL (entier)
Annule la déclaration XML lors de la sauvegarde du document

Note:

Seulement disponible dans Libxml >= 2.6.21

LIBXML_NSCLEAN (entier)
Suppression des espaces de noms redondants
LIBXML_PARSEHUGE (entier)
Affecte le drapeau XML_PARSE_HUGE. Désactive toute limite du parseur codée en dur. Ceci affecte les limites comme la profondeur maximale d'un document ou l'entité récursion, mais aussi les limites de la taille du texte des noeuds.

Note:

Seulement disponible depuis Libxml >= 2.7.0 (depuis PHP >= 5.3.2 et PHP >= 5.2.12)

LIBXML_PEDANTIC (integer)
Défini le drapeau XML_PARSE_PEDANTIC, qui active le rapport d'erreur pedentic.

Note:

Available as of PHP >= 5.4.0

LIBXML_XINCLUDE (entier)
Implémentation de la substitution XInclude
LIBXML_ERR_ERROR (entier)
Erreur non-fatale
LIBXML_ERR_FATAL (entier)
Erreur fatale
LIBXML_ERR_NONE (entier)
Aucune erreur
LIBXML_ERR_WARNING (entier)
Une alerte simple
LIBXML_VERSION (entier)
libxml version sous la forme 20605 ou 20617
LIBXML_DOTTED_VERSION (chaîne de caractères)
libxml version sous la forme 2.6.5 ou 2.6.17
LIBXML_SCHEMA_CREATE (integer)
Crée la valeur par défaut/fixée du noeud durant la validation du schéma XSD

Note:

Uniquement disponible en Libxml >= 2.6.14 (à partir de 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