Valider XML en utilisant une DTD personnalisée en PHP
Est-il un moyen (sans avoir à installer des bibliothèques) de la validation XML à l'aide d'une DTD personnalisée en PHP?
source d'informationauteur michael
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à PHP DOMen particulier DOMDocument::schemaValidate et DOMDocument::valider.
L'exemple de DOMDocument::validate est assez simple:
Si vous avez la dtd dans une chaîne de caractères, vous pouvez valider contre elle à l'aide d'un les données wrapper pour la dtd:
Mon interprétation de la question d'origine, c'est que nous avons un "conseil" fichier XML que nous voulons valider à l'encontre d'un "conseil d'administration" fichier DTD. Voici donc comment je voudrais mettre en œuvre le "interpoler un local DTD à l'intérieur de l'élément DOCTYPE" idée exprimée dans les commentaires par les deux Soren et PayamRWD:
Noter que la gestion d'erreur a été supprimée pour des raisons de concision, et il peut y avoir un mieux/plus générale, pour gérer l'interpolation. Mais je ont effectivement utilisé ce code avec des données réelles, et il fonctionne avec PHP version 5.2.17.
En essayant de terminer "owenmarshall" réponse:
dans xml-validator.php:
ajouter du code html, en-tête, corps, ...
template-format.xml: