2010-11-08 3 views
4

Je me demande s'il existe un moyen d'utiliser XmlSerializer pour désérialiser des objets avec un boîtier différent.XmlSerializer -> insensible à la casse

Disons que mon objet est

Class A 
{ 
    public String Str{get;set;} 
} 

Je les fichiers XML suivants, id comme désérialiser:

<root><StR>Hello</StR></root> 

<root><STR>Hello</STR></root> 

<root><str>Hello</str></root> 

Toutes les suggestions/idées? Aussi les manipuler Approches DOM, etc sont les bienvenus :)

Cordialement

Répondre

1
xml_str=xml_str.Replace("StR>","Str>"); 

ou simplement préforme transformation XSLT avant desirlize

+0

Aussi, si cela ne résout rien, j'utiliser un xslt, que j'intégrer dans l'ensemble. – Jaster

1

XML est sensible à la casse, donc dans ce cas, je dirais que ce serait un échec. Donc, vous devriez nettoyer les données en utilisant regex car le DOM aura des problèmes avec le XML.

0

Puisque Xml est sensible à la casse, vous ne pouvez pas obtenir ce comportement automatiquement. Une façon de résoudre le problème consiste à implémenter l'interface IXmlSerializable. De cette façon, vous pouvez contrôler la désérialisation XML dans la méthode ReadXml(XmlReader reader).