Alex Rivera | Logout

What is the best way to parse an XML boolean attribute (in .NET)?

Asked 2008-11-05T15:11:48.540
19

An XML attribute declared as xs:boolean can acceptable be "true", "false", "0" or "1". However, in .NET, Boolean.Parse() will only accept "true" or "false". If it sees a "0" or "1", it throws a "Bad Format" exception.

So, given that, what's the best way to parse such a value into a Boolean?

(Unfortunately, I'm limited to .NET 2.0 solutions, but if v3.5 offers something, I'd love to hear about it.)

Edit
Report

1 Answer

2

Using CBool instead of Boolean.Parse should do the trick: although you'll have to embed it in a try/catch block (which wouldn't be required when using Boolean.TryParse), it will successfully convert most 'sensible' boolean values, including true/false and 0/1.

Edit: as pointed out in a comment, this answer is kinda useless for C# programmers, as CBool is a VB-ism. It maps to Microsoft.VisualBasic.CompilerServices.Conversions::ToBoolean, which is not suitable for general consumption. Which makes the XMLConvert class pointed out in the accepted answer an even better alternative.

answered 2008-11-05T15:16:16.473

Your Answer