【发布时间】:2020-12-06 02:58:51
【问题描述】:
<Students>
<Student Name="John">
<Subject SubId="123" Content="History minor subject" Enrolled="true" Percentage="0"/>
<Subject SubId="146" Content="Math major Subject" Enrolled="true" Percentage="0"/>
</Student>
<Student Name="Jim">
<Subject SubId="564" Content="physics medium subject" Enrolled="true" Percentage="0"/>
<Subject SubId="324" Content="Chem small subject" Enrolled="true" Percentage="0"/>
</Student>
<Students>
问题 1 - 我想搜索人名内容 John 和内容是否具有“专业”-> 返回 Xelememt ,我正在尝试使用以下查询,但它对我不起作用。
字符串 studentToSearch = "John" 和字符串 contentToSearch = "major"
IEnumerable<XElement> student = from st in rootElement.Descendants("Students").Elements("Student")
where st.Attribute("Name").Value.ToString() == studentToSearch && st.Element("Subject").Attribute("Content").Value.ToString().Contains(contentToSearch)
select st;
问题 2 - 我想搜索人名内容 John 和内容是否具有“主要”,如果找到它的百分比为“0”--> 然后将其更新为“80”百分比。尝试以下查询
rootElement.Elements("Students")
.Where(x=> x.Element("Student").Value == studentToSearch)
.Where(a => a.Element("Subject").Attributes("Content").ToString().Contains(contentToSearch) && a.Element("Subject").Attribute("Percentage").Value == "0").FirstOrDefault()
.SetAttributeValue("Percentage", 80);
任何建议都会有所帮助?
【问题讨论】:
标签: c# xml linq linq-to-xml