MSSQL 2005+ supports direct quering xml columns as well as indexing them.
Thus you should be able to run your typical queries with slightly modified criteria for XML fields:
SELECT
CREATE TABLE results_xml (pk INT PRIMARY KEY, FieldSQL XML not null)
insert into results_xml (pk,FieldSQL) values (1,'
<resultsds>
<results>
<referendum_you_voted />
<your_first_choice>Micheal D Higgins</your_first_choice>
<your_second_choice>Sarah McCarthy</your_second_choice>
<your_third_choice>David Norris</your_third_choice>
<your_fourth_choice>Mary Robinson</your_fourth_choice>
<your_fifth_choice>Barack Obama</your_fifth_choice>
</results>
</resultsds>
'
)
select
FieldSQL.value('(/ResultsDS/Results/Your_First_Choice)[1]', 'nvarchar(1000)')
,* from results_xml
where
FieldSQL.value('(/ResultsDS/Results/Your_Fifth_Choice)[1]', 'nvarchar(1000)')='Barack Obama'
Syntax is not exact, as I do not have SQL Server running now.
More information can be found on MSDN:
http://msdn.microsoft.com/en-us/library/ms345117(v=sql.90).aspx[
^]