So my genius predecessor decided to include a 'xml_data' column in the database for an application. I now have to use some information stored in this xml for another application. I am doing a normal query to get the xml out of the db, and am trying to use LINQ to extract the data I need from the XML. Here is some example XML:
<?xml version="1.0"?>
<data>
<field>
<name normalized="id_num"></name>
<value>
<![CDATA[12345]]>
</value>
</field>
<field>
<name normalized="blah"></name>
<value>
<![CDATA[asdfasdf]]>
</value>
</field>
...
</data>
since each row has it's own XML document that follows this pattern, I am iterating through the SQL results and trying to extract the value I need from the XML like this:
List<String> collection = new List<String>();
while (sqlreader.Read())
{
XElement response = XElement.Parse(sqlreader["xml_data"].ToString());
var name = from field in response.Elements("field")
where (string)field.Element("name").Attribute("normalized") == "id_num"
select field.Element("value").Value;
collection.Add(name.ToString());
}
I know it's not right because I keep getting this back instead of the value I need:
System.Linq.Enumerable+WhereSelectEnumerableIterator`2[System.Xml.Linq.XElement,System.String]
P.S. Please be gentle, I am a Python programmer and am not really familiar with C# or .NET.