J'ai un grand document XML dans une chaîne. Quelle est la meilleure façon de déterminer si le XML est bien formé?Comment déterminer si XML est bien formé?
Répondre
Quelque chose comme:
static void Main() {
Test("<abc><def/></abc>");
Test("<abc><def/><abc>");
}
static void Test(string xml) {
using (XmlReader xr = XmlReader.Create(
new StringReader(xml))) {
try {
while (xr.Read()) { }
Console.WriteLine("Pass");
} catch (Exception ex) {
Console.WriteLine("Fail: " + ex.Message);
}
}
}
Si vous devez vérifier contre un xsd, puis utilisez XmlReaderSettings
.
Exécutez-le simplement via un analyseur. Cela effectuera les vérifications appropriées (si elle analyse correctement).
S'il s'agit d'un document volumineux (comme indiqué), un analyseur basé sur les événements (par exemple, SAX) sera approprié car il ne stockera pas le document en mémoire.
Il est souvent utile d'avoir des utilitaires XML pour vérifier ce genre de choses. J'utilise XMLStarlet, qui est un ensemble d'outils de ligne de commande pour la vérification/manipulation XML.
XmlReader semble un bon choix car il devrait diffuser les données (pas charger l'ensemble xml en une seule fois)
Essayez d'utiliser un XmlReader avec un XmlReaderSettings qui a ConformanceLevel ensemble .Document.
- 1. Vérifiez XML bien formé sans essayer/attraper?
- 2. Vérifier si le fichier distant est bien formé XML avec PHP
- 3. Comment savoir si mon document html est bien formé en ruby
- 4. Lecture générique d'un fichier binaire bien formé
- 5. Bien formé XML? Références XML dans les noms de balises et les noms d'attributs
- 6. Comment lire du XML bien formé en Java, mais ignorer le schéma?
- 7. L'interpréteur Python SAX indique que le fichier XML n'est pas bien formé
- 8. MySQL 5.0: Sortie des données BLOB au format XML (bien formé)?
- 9. PHP: "valeur numérique non bien formé a rencontré"
- 10. Détecter si le document IFRAME est mal formé
- 11. Déterminer si l'utilisateur est connecté
- 12. Comment déterminer si le canal distant est déjà enregistré
- 13. Comment déterminer si un contrôle est activé sur une page?
- 14. Déterminer si un type est statique
- 15. déterminer si une autre application est occupée
- 16. C# Comment déterminer si HTTPS
- 17. Déterminer si Flash OCX est installé?
- 18. Comment déterminer si un DIB est ascendant ou descendant?
- 19. Comment déterminer si un fichier est chiffré avec EFS?
- 20. Comment déterminer si un objet Rails est marked_for_destruction?
- 21. Comment déterminer si un caractère est une lettre en Java?
- 22. Comment déterminer si une chaîne est JSON valide?
- 23. Comment faire pour déterminer si l'association Rails est surchargée?
- 24. Comment puis-je déterminer si une case est cochée?
- 25. Comment déterminer si une police TrueType est en italique?
- 26. Comment déterminer si une page est en cours de redirection
- 27. Comment déterminer si un assemblage est en cours d'utilisation?
- 28. Comment déterminer le bon xml à écrire
- 29. Astoria Erreur - Attendu un URL http absolu et bien formé sans une requête ou un fragment
- 30. Désactiver les avertissements lors du chargement de HTML non bien formé par DomDocument (PHP)