C# 基于字段属性的linq-to-xml数据访问
我有这样一些xml:C# 基于字段属性的linq-to-xml数据访问,c#,xml,linq,C#,Xml,Linq,我有这样一些xml: <Data> <Rows> <Row> <Field Name="title">Mr</Field> <Field Name="surname">Doe</Field> <Row> <Rows> <Data> 先生 雌鹿 使用linq如何获取属性为姓
<Data>
<Rows>
<Row>
<Field Name="title">Mr</Field>
<Field Name="surname">Doe</Field>
<Row>
<Rows>
<Data>
先生
雌鹿
使用linq如何获取属性为姓氏的field元素中包含的值
谢谢实际上,您正在尝试在这里执行XML到Linq的操作。LINQtoXML更像是通过Linq从对象创建XML结构 因为您有一个XML文件,所以可以使用如下内容:
XmlDocument xml = new XmlDocument();
xml.LoadXml(Content);
string Surname = xml.SelectSingleNode("//Field/[@Name='surname']").Value.ToString();
在另一种情况下,要从XML中获取数据,请改用XPath。实际上,您正在尝试执行XML到Linq的操作。LINQtoXML更像是通过Linq从对象创建XML结构 因为您有一个XML文件,所以可以使用如下内容:
XmlDocument xml = new XmlDocument();
xml.LoadXml(Content);
string Surname = xml.SelectSingleNode("//Field/[@Name='surname']").Value.ToString();
在其他用途中,要从XML获取数据,请改用XPath。以下是如何使用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();
XDocument doc=XDocument.Parse(“MrDoe”);
字符串[]匹配=(来自文档子体(“字段”)中的e)
其中(字符串)e.Attribute(“Name”)=“姓氏”
选择(字符串)e.ToArray();
以下是使用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();
XDocument doc=XDocument.Parse(“MrDoe”);
字符串[]匹配=(来自文档子体(“字段”)中的e)
其中(字符串)e.Attribute(“Name”)=“姓氏”
选择(字符串)e.ToArray();
我认为LINQ to XML非常适合作为XPath的替代品,提供强类型支持和更直观的查询语法。LINQ to XML在XML之上添加了另一层。基本上,它所做的是将查询转换为XPath构造。查看中的XQuery示例,您可以看到如何用LINQ而不是XPath编写复杂查询。对于那些没有XPath经验的人来说,LINQ更直观。没错。我相信LINQtoXML非常适合作为XPath的替代品,提供强类型支持和更直观的查询语法。LINQtoXML在XML之上添加了另一层。基本上,它所做的是将查询转换为XPath构造。查看中的XQuery示例,您可以看到如何用LINQ而不是XPath编写复杂查询。对于那些没有XPath经验的人来说,LINQ更直观。没错。