Dans le cadre de la classe de base pour un large panel de tests unitaires, je suis en train d'écrire une fonction d'assistance de manière récursive qui compare les noeuds d'un objet XmlDocument à l'autre en C# (.NET). Certaines exigences de la présente:
- Le premier document est la source, par exemple, ce que je veux le document XML. Ainsi, le second est celui que je veux trouver des différences et il ne doit pas contenir supplémentaire noeuds, et non dans le premier document.
- Doit lancer une exception lorsqu'un trop grand nombre de différences significatives sont trouvées, et il doit être facilement compréhensible par un humain jetant un coup d'oeil à la description.
- Enfant de l'élément de commande est important, les attributs peuvent être dans n'importe quel ordre.
- Certains attributs sont ignorable; plus précisément
xsi:schemaLocation
etxmlns:xsi
, mais je voudrais être en mesure de passer dans celles qui le sont. - Préfixes d'espaces de noms doivent correspondre à la fois les attributs et les éléments.
- Les espaces entre les éléments n'est pas pertinent.
- Éléments soit avoir des éléments d'enfant ou d'
InnerText
, mais pas les deux.
Alors que je suis à la démolition de quelque chose ensemble: quelqu'un a écrit un tel code et serait-il possible de le partager ici?
Sur un côté, que feriez-vous appel le premier et le second documents? J'ai été en se référant à eux en tant que "source" et "cible", mais il se sent mal depuis la source est ce que je veux de la cible à ressembler, sinon je lève une exception.