日期:2014-05-17  浏览次数:20427 次

.NET读取XML属性,删除和修改。高结贴在线等。
xml文件名:tops20.aspx 节点如下:
<tops>
<list>
<memberSerials>A0000008</memberSerials>
<names>heihei</names>
<marks>98</marks>
<times>00:01:20</times>
</list>
<list>
<memberSerials>J00002</memberSerials>
<names>jeson</names>
<marks>150</marks>
<times>00:01:25</times>
</list>
<list>
<memberSerials>J0001</memberSerials>
<names>jicemo</names>
<marks>50</marks>
<times>00:01:05</times>
</list>
<list>
<memberSerials>J00002</memberSerials>
<names>jeso</names>
<marks>98</marks>
<times>00:01:20</times>
</list>
<list>
<memberSerials>J00002</memberSerials>
<names>jes</names>
<marks>150</marks>
<times>00:01:25</times>
</list>
</tops>

请问怎么查询memberSerials==A0000008的<marks>值。并修改他

------解决方案--------------------
var memberSerials = from c in XElement.Load(Context.Server.MapPath("~/Xml.xml")).Descendants("memberSerials").Where(x=>x.Value=="A0000008")
                            select c;
  
------解决方案--------------------
不多讲了,自己google“xpath”

虽然手段有很多,但是作为程序员xpath这东西还是必须明白滴

这玩意就和正则一样,似乎木啥用,但是却经常遇到,所以俺们不多说啥,给你个关键字,自己搞明白他,下回就不用问俺们了
------解决方案--------------------
		XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("~/test1.xml"));
XmlElement elem = xmlDoc.SelectSingleNode("//list[memberSerials='A0000008']/marks") as XmlElement;
Response.Write(elem.InnerText + "<br/>");
elem.InnerText = "188";
Response.Write("修改后的值:" + elem.InnerText);
xmlDoc.Save(Server.MapPath("~/test1.xml")); //保存回xml文件