J'ai rencontré un problème d'analyse XML dans .Net où je dois être capable de détecter la forme d'élément vide que j'ai mais que je n'arrive pas à obtenir pour fonctionner correctement. Essentiellement dans le format XML j'analyse les deux fragments suivants devraient analyser différemment:Détection de deux formes d'éléments vides en XML en utilisant .Net
<sometag />
et
<sometag></sometag>
Mon problème est que .Net ne semble pas me fournir des moyens pour déterminer la différent entre ce qui précède.
utilisant DOM basé l'analyse du XmlNode
rapportera « « » » pour les deux InnerText
et InnerXml
et la propriété OuterXml
à la deuxième se développe sous forme quel que soit le XML d'entrée, donc pas moyen de détecter sur cette base.
En utilisant XmlReader
analyse syntaxique à base des deux formulaires de rapport IsEmptyElement
d'être true
et je ne peux pas voir d'autres propriétés de toute utilisation à détecter.
Quelqu'un sait de toute façon de détecter ce pour DOM analyse syntaxique basé
Corrigé ma question, vous avez raison que cela rapporte correctement pour l'analyse syntaxique basée sur 'XmlReader', serait toujours agréable d'être capable de détecter la même chose pour l'analyse syntaxique DOM – RobV
Pardonnez mon ignorance mais qu'est-ce que l'analyse syntaxique * DOM? –
Document Object Model = DOM. Si vous utilisez la classe 'XmlDocument', .Net transformera le document XML entier en une arborescence d'objets qui, selon votre format XML, facilitera l'analyse puisque vous pouvez vous déplacer librement dans les données plutôt que de les transférer uniquement. L'inconvénient est qu'il nécessite beaucoup plus de mémoire que l'analyse XmlReader, surtout si vous avez de gros fichiers XML – RobV