LinqToXml
来源:互联网 发布:Oracle sql格式化时间 编辑:程序博客网 时间:2024/06/07 02:49
今天学了这个,嘿嘿,新手的可以共同学习一下哦。
在以前的XmlDocument的方法创建xml的节点感觉很多代码,今天学了LinqToXml感觉很轻松。对比代码
XmlDocument dc = new XmlDocument();
stuinfo stu = new stuinfo();
XmlNode xn = dc.CreateElement("students");
XmlAttribute xmla = dc.CreateAttribute("stuid");
xmla.Value = stu.stuid.ToString() ;
xn.Attributes.Append(xmla);
XmlNode xnl = dc.CreateElement("stuname");
xnl.InnerText = stu.stuname;
xn.AppendChild(xnl);
dc.AppendChild(xn);
dc.Save("D://fdsfds.xml");
return true;
XElement element = new XElement("Books",
new XElement("Book",
new XElement("title", "aaa"),
new XElement("Author", "hello"),
new XAttribute("id", 1)));
element.Save("D://fds.xml");
XElement 的层次感更强一些,不会发图片。呵呵第一次发比较哦,大家别说我哈。我初学阶段。~~
下面是LInq对XML的操作:
//把数据库中的表读取成xml的文件,保存在D盘123.xml文件
SqlConnection conn = new SqlConnection("server=.;database=student;uid=sa;pwd=123456");
string sql = "select * from BOOK";
SqlDataAdapter da = new SqlDataAdapter(sql,conn);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable dt = ds.Tables[0];
XElement element = new XElement("Books");
for (int i = 0; i < dt.Rows.Count; i++)
{
XElement elments = new XElement(
new XElement("book",
new XElement("title", dt.Rows[i]["Book"]),
new XElement("Athor", dt.Rows[i]["Author"])
} //获取指定的节点 } 对节点的修改 string xmlpath = Server.MapPath("BOOK.xml");
)
);
element.Add(elments);
element.Save("D://123.xml");
protected void Button8_Click(object sender, EventArgs e)
{
string xmlpath = Server.MapPath("BOOK.xml");
XDocument doc = XDocument.Load(xmlpath);
//获取根
XElement root = doc.Root;
IEnumerable<XElement> elements = from elem in root.Elements("Book")
where (string)elem.Attribute("id")
== id1.Value//id1是个TEXTBOX哈
select elem;
Response.ContentType = "text/xml";
foreach (XElement ele in elements)
{
Response.Write(ele);
Response.End();
}
XDocument doc = XDocument.Load(xmlpath);
XElement root = doc.Root;
IEnumerable<XElement> elements = from elem in root.Elements("Book")
where (string)elem.Attribute("id")
== "1"//1被写死了,大家可以用TEXTBOX
select elem;
if (elements.Count()>0)
{
XElement el = elements.First();/这里我写的是修改第一个节点,如果修改其他的要用循环匹配哦
el.SetAttributeValue("id", "1");
el.ReplaceNodes(new XElement("title", "ajax"),
new XElement("Author", "怀特"));
}
root.Save(xmlpath);
删除节点和修改基本一样哦,就不浪费空间贴代码了。 是不是有点乱?如果有没看懂的给我留言,我已经把乱的地方加了注释了。呵呵,我菜鸟,不过我有心意哦~~对了,不知道LINQ是什么的,那么代码里的LINQ语法可能会看不懂。。。可以去参考来继敏老师才讲的lamda表达式。
- LinqToXml
- LinqToXml
- LinqToXml
- LinqtoXml的基本操作
- 使用LinqToXML增删
- LinqToXml Ancestors和AncestorsAndSelf方法
- LinqTOXML DescendantNodes、DescendantNodesAndSelf和Descendants、DescendantsAndSelf方法
- WP7 LinqToXml调用静态xml文件
- LinqToXML中的XmlDocument去除头部声明写法
- linqToXml终结了,封装成了操作类。。。
- 字符编码过滤器中对特殊的路径进行特殊处理
- myeclipse中文改英文
- 面向对象
- 数组
- 开始我Java之旅
- LinqToXml
- java读写文件操作
- 1
- 魔兽世界编程宝典读书笔记(2)
- bash配置文件
- 诡异的假象
- C++
- 大一到底能学点什么东西啊~~
- 学习java感想