2009-11-30 5 views
1

Quelqu'un peut-il suggérer un outil de différenciation xml en ligne de commande pour Solaris? Je veux en appeler un dans un script de test de régression, il est donc important que l'outil puisse être appelé depuis la ligne de commande et renvoyer un statut pour indiquer si les fichiers contiennent des différences.Utilitaire XML Diff de ligne de commande pour Solaris

L'outil doit avoir une option permettant d'ignorer l'ordre des attributs.

Merci, Dave

Répondre

2

moi avons eu ce problème et a fini par écrire mon propre parce que je voulais savoir quelle était la différence [1]. Si vous pouvez gérer en sachant simplement si le XML attendu et le XML réel sont identiques, la chose la plus simple est de canoniser le XML en une chaîne et de différencier les chaînes.

Canonicalisation fait partie des boîtes à outils XML spec et produit une chaîne qui est indépendante de l'ordre d'attribut, le type de citation, la normalisation des CDATA, etc.

Toutes les bonnes parseurs XML devraient avoir cela. J'utilise XOM (http://www.xom.nu) (Java) qui a un canonicalizer et est simple à utiliser.

[1] Mon XML contenait des représentations de nombres réels qui pouvaient différer légèrement en raison d'erreurs d'arrondi. La comparaison lexicale simple ne fonctionne pas (x = "1.99999994" et x = "2" ne sont pas identiques lexicalement mais peuvent être égaux dans un epsilon donné).

0

Vous pouvez essayer diffxml. L'ordre des attributs est ignoré (selon la spécification XML).

Questions connexes