【发布时间】:2009-12-09 05:37:41
【问题描述】:
所以我的天才前辈决定在数据库中为应用程序包含一个“xml_data”列。我现在必须将此 xml 中存储的一些信息用于另一个应用程序。我正在做一个正常的查询以从数据库中获取 xml,并尝试使用 LINQ 从 XML 中提取我需要的数据。下面是一些 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>
由于每一行都有它自己的遵循这种模式的 XML 文档,我正在遍历 SQL 结果并尝试从 XML 中提取我需要的值,如下所示:
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());
}
我知道这是不对的,因为我一直在取回它而不是我需要的值:
System.Linq.Enumerable+WhereSelectEnumerableIterator`2[System.Xml.Linq.XElement,System.String]
附:请温柔,我是一名 Python 程序员,对 C# 或 .NET 不太熟悉。
【问题讨论】: