二 <Ad> <adlist> <ad_name>广告1</ad_name> <ad_pic>UpFile/1.jpg</ad_pic> <ad_url>http://www.sohu.com</ad_url> <ad_qz>2</ad_qz> </adlist> <adlist> <ad_name>广告2</ad_name> <ad_pic>UpFile/2.jpg</ad_pic> <ad_url>http://www.163.com</ad_url> <ad_qz>1</ad_qz> </adlist> </Ad>
对于后台的绑定都是一样,都绑定到adlist XmlDataSource xmlSource = new XmlDataSource(); xmlSource.XPath = "Ad/adlist";
在页面上,我使用Repeater来显示 对于第一种,使用Eval绑定表达式 <%# Eval("name") %> name是adlist 的属性 对于第二种,使用XPath数据绑定表达式 <%# XPath("ad_name")%> ad_name是adlist下的子结点
修改: 对第一种XML,通过属性名称来查找结点,然后将结点转换成XmlElement,对属性进行设置.xmlDoc是XmlDocument的实例 XmlNode xFind = xmlDoc.SelectSingleNode("Ad/adlist[@name='" + sName + "']"); XmlElement element = (XmlElement)xFind; element.SetAttribute("属性名", "修改值"); 修改完后,要进行保存,不然,值只是保存在内存中,并未写入文件中.xmlDoc.Save(路径);
对第二种XML,我使用XPathNavigator来操作.xmlDoc同上 XmlNode xFind = xmlDoc.SelectSingleNode("Ad/adlist[ad_name='" + sName + "']"); XPathNavigator nav = xFind.CreateNavigator(); XPathNodeIterator ite = nav.Select("ad_name");//查找www.2cto.com if (ite != null && ite.MoveNext())//不为NULL并移到下一结点,下一个节点是文本节点 { ite.Current.SetValue("广告3");//设置当前结点的值 } 最后一步,xmlDoc.Save(路径);
|