2009-10-05 7 views
1

Je dois prendre en XML et valider contre un fichier de schéma. Ensuite, je dois appeler une fonction basée sur la commande (exemple updateContactList). Quelle est la meilleure façon de procéder? Je suis inquiet à propos de la validation du XML (et des erreurs de rapport) et je n'ai aucune idée de la meilleure façon de mettre les données dans une fonction à exécuterComment valider un schéma XML contre (php ou perl ou C++ possible)

-edit- NOTE: En validant le schéma, j'ai besoin de valider le (regex). Ce serait génial si je peux appeler une fonction avec le XML et le schéma et l'avoir return false + erreur msg ou true

+0

Que voulez-vous dire modèle regex? Vous ne devriez pas essayer de valider le XML par rapport aux expressions régulières. –

Répondre

7

Je ne sais pas ce que vous entendez par modèle regex? La manière la plus courante de valider un document XML est un XSD. Vous pouvez utiliser DomDocument->schemaValidate pour cela:

$doc = new DOMDocument(); 
$doc->load($tempFile); 
$doc->schemaValidate('schema.xsd'); 

Il y a aussi la DomDocument->relaxNGValidate correspondant pour valider contre le moindre utilisé RelaxNG schéma.

Vous pouvez également utiliser le error-handler functions for libxml, si vous envisagez de capturer les erreurs et de faire quelque chose à leur sujet, plutôt que de simplement valider true ou false. Essentiellement, appelez libxml_use_internal_errors(true); avant le chargement et la validation du document et utiliser libxml_get_errors et display_xml_error pour aller chercher les erreurs.

Questions connexes