【发布时间】:2009-07-08 11:23:51
【问题描述】:
我有一些这样的xml:
<Data>
<Rows>
<Row>
<Field Name="title">Mr</Field>
<Field Name="surname">Doe</Field>
<Row>
<Rows>
<Data>
使用linq如何获取属性为姓氏的字段元素中包含的值
谢谢
【问题讨论】:
我有一些这样的xml:
<Data>
<Rows>
<Row>
<Field Name="title">Mr</Field>
<Field Name="surname">Doe</Field>
<Row>
<Rows>
<Data>
使用linq如何获取属性为姓氏的字段元素中包含的值
谢谢
【问题讨论】:
以下是使用 LINQ to XML 表达查询的方法:
XDocument doc = XDocument.Parse("<Data><Rows><Row><Field Name=\"title\">Mr</Field><Field Name=\"surname\">Doe</Field></Row></Rows></Data>");
string[] matches = (from e in doc.Descendants("Field")
where (string)e.Attribute("Name") == "surname"
select (string)e).ToArray();
【讨论】:
实际上,您正在尝试在此处执行 XML-to-Linq 的操作。 Linq to XML 更多是为了通过 Linq 从对象创建 XML 结构。
既然你有一个 XML 文件,你可以使用这样的东西:
XmlDocument xml = new XmlDocument();
xml.LoadXml(Content);
string Surname = xml.SelectSingleNode("//Field/[@Name='surname']").Value.ToString();
在其他用途中,要从 XML 中获取数据,请改用 XPath。
【讨论】: