我有一些像这样的xml:
<Data>
<Rows>
<Row>
<Field Name="title">Mr</Field>
<Field Name="surname">Doe</Field>
<Row>
<Rows>
<Data>
使用linq如何获取属性为姓氏的字段元素中包含的值
感谢
答案 0 :(得分:2)
以下是使用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();
答案 1 :(得分:1)
实际上,你正试图在这里做一个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。