2 votes

Vérifier la valeur du texte dans le xml

J'ai un xml comme

<numbers>
<number>1</number>
<number>2</number>
<number>abc</number>
</numbers>

Pendant la sérialisation, comment puis-je identifier que l'élément <number> a texte como abc . Je dois autoriser uniquement les nombres entiers et non le texte.

0voto

Grant Thomas Points 28280

En supposant que ce qui vous reste est exactement ce que vous demandez (et que la gestion du XML n'est pas un problème), vous pourriez utiliser int.TryParse qui vous permettra de saisir une chaîne de caractères et d'afficher le nombre résultant, s'il s'agit d'un nombre - la valeur de retour indiquera si l'analyse syntaxique a réussi ou non, et donc si la valeur originale était en fait un nombre.

0voto

Stefan Points 8183

En fonction de ce que vous entendez par "autoriser uniquement les nombres entiers", le comportement par défaut de la sérialisation xml de .net pourrait être suffisant pour vous. Si le membre nombre dans votre classe est défini comme int il y aura une exception lors de la désérialisation de votre fragment XML fourni :

[XmlRoot("numbers")]
public class Numbers
{
  [XmlElement("number")]
  public int[] Numbers;
}

Si vous souhaitez avoir plus de contrôle sur le processus de sérialisation, vous pouvez implémenter l'option IXmlSerializable interface.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X