.NET怎么修改和添加XML节点的内容?

<?xmlversion="1.0"encoding="utf-8"?><photos><pdesc="www.baidu.com... <?xml version="1.0" encoding="utf-8"?><photos><p desc="www.baidu.com" url="_pics/bilde1.jpg" /><p desc="www.baidu.com" url="_pics/bilde2.jpg" /> </photos>比如我想添加一个新的P节点,怎么在后台写代码?不需要那种新添加<PHOTOS>的那种哦 展开
 我来答
百度网友e41942f98
2012-03-03
知道答主
回答量:27
采纳率:0%
帮助的人:7.3万
展开全部
引用命名空间:using System.Xml

1.检查所要操作的xml文件是否存在:
System.IO.File.Exists(文件路径及名称);

2.得到xml文件:
(1)在asp.net中可以这样得到:
XmlDocument xmlDoc = new XmlDocument();

//导入xml文档

xmlDoc.Load( Server.MapPath("xmlTesting.xml"));

//导入字符串

//xmlDoc.LoadXml("<bookStore> <book id="01" price="3.5元"> 读者</book></bookStore>");

注:Server.MapPath("xmlTesting.xml")此时的xmlTesting.xml文件必须是在当前的解决方案里;同样可以写成完整的物理路径xmlDoc.Load (@"E:"软件学习"测试"myNoteWeb"xmlTesting.xml")

(2)在windForm中 直接用物理路径得到所要操作的xml文件具体实现方法同上
3.创建xml文件:
XmlDocument xmlDoc = new XmlDocument(); //创建xml文档(实例化一个xml)

XmlNode root = xmlDoc.CreateElement("bookStore");//创建根节点

//创建第1个子结点:

XmlNode bookNode = xmlDoc.CreateElement("book");

bookNode.InnerText = "读者";

//为此节点添加属性

法1:

bookPublishNode.SetAttribute("id", "01")

root.AppendChild(bookNode);

法2:

XmlAttribute xmlattribute = tempXmlDoc.CreateAttribute("price");

xmlattribute.Value = "3.5元";

tempRoot .Attributes .Append (xmlattribute )

//创建第2个根节点的子结点:

XmlNode tempBookNode = xmlDoc.CreateElement("tempbook ");

tempBookNode.InnerText ="文摘";

root.AppendChild(tempBookNode);

xmlDoc.AppendChild(root); //将根节点添加到xml文档中

try

{

xmlDoc.save(“bookInfo.xml”);//xml将保存到当前解决方案的目录下

}

catch (Exception ex)

{

MessageBox.Show(ex.Message); //显示错误信息

}

得到的xml文档如下:

<?xml version="1.0" encoding="utf-8" ?>

<bookStore>

<book id ="01" price="3.5元">

读者

</book>

<tempbook id ="02">

文摘

</tempbook >

</bookStore>

4.读取,修改xml信息
tempTesting.xml文件的内容如下:

?<?xml version="1.0" encoding="utf-8"?>

<bookStore>

<book id="01" price="3.5元">

读者

</book>

<book id="02" price="5元">

<bookname>百家讲坛</bookname>

<bookpublish>文学出版社</bookpublish>

</book>

<tempbook id="0000">漫画tempbook>

</bookStore>

(1) 得到xml文件的xml信息
XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load( Server.MapPath("xmlTesting.xml"));

XmlNode root=xmlDoc.DocumentElement;

(2) 得到节点
//得到id为2book节点下的所有节点

XmlNodeList xmlNodes = root.SelectNodes("//book[@id='02']//*");

XmlNode tempNode = xmlNodes[0];//得到第一个节点

//将tempbook强制转化为XmlElement

XmlElement xmlelement = (XmlElement)root.SelectSingleNode("tempbook");

(3) 修改节点内容
XmlNode tempBook = root.SelectSingleNode("tempbook");//修改节点内容

tempBook. InnerText="漫画";

(4)得到节点的属性值并修改:
//得到节点的属性

//法1

XmlAttributeCollection attrbute= tempBook.Attributes;

string bookID = attrbute[0].Value;

//法2:

string bookid = tempBook.Attributes[0].Value.ToString();

//修改节点属性的值

tempBook.Attributes[0].Value = "0000";

(5)添加一个根节点

XmlNode node = xmlDoc.CreateElement("testing");

node.InnerText = "testing";

root.AppendChild(node);

(6)保存修改后的文档
xmlDoc.Save(Server.MapPath("tempTesting.xml"));

******其他:

(一)显示xml信息
1以xml文档的样式显示:xmlDoc.outerxml;

2.显示各个节点

XmlNode root = xmlDoc.DocumentElement;//得到根节点:

if (root.ChildNodes.Count > 0)

{

XmlNode xmlnode = root.FirstChild;//得到子结点:

for (int i = 0; i < root.ChildNodes.Count; i++)

{

MessageBox.Show(xmlnode.FirstChild .InnerText);

xmlnode = xmlnode.NextSibling;或mlNode subNode2 = root.LastChild;

}

}

else

MessageBox.Show("没有内容!");

(二)将数据库的信息导入为xml
XmlDocument xmlDocItem = new XmlDocument();

DataSet ds = GetDataSet(strtsql);//调用方法从数据库中得到DataSet。

xmlDocItem.LoadXml(ds .GetXml ());//导入xml中;

*****************************以下是在网络上找到的关于C#操作xml文件的总结***

一:创建并保存xml文件
string FileName =Application.StartupPath+"""phone.xml";

XmlTextWriter objXmlTextWriter = new XmlTextWriter(FileName,Encoding.Default);

objXmlTextWriter.Formatting = Formatting.Indented;

objXmlTextWriter.Indentation = 6;

objXmlTextWriter.WriteStartDocument();

objXmlTextWriter.WriteStartElement("", "PhoneBook", "");

objXmlTextWriter.WriteStartElement("", "Name", "");

objXmlTextWriter.WriteString("加菲尔德");

objXmlTextWriter.WriteEndElement();

objXmlTextWriter.WriteStartElement("", "Number", "");

objXmlTextWriter.WriteString("5555555");

objXmlTextWriter.WriteEndElement();

objXmlTextWriter.WriteStartElement("", "City", "");

objXmlTextWriter.WriteString("纽约");

objXmlTextWriter.WriteEndElement();

objXmlTextWriter.WriteStartElement("", "DateOfBirth", "");

objXmlTextWriter.WriteString("26/10/1978");

objXmlTextWriter.WriteEndElement();

objXmlTextWriter.WriteEndElement();

objXmlTextWriter.WriteEndDocument();

objXmlTextWriter.Flush();

objXmlTextWriter.Close();

这段代码在win2003ser+vs2005环境下测试通过,出来的效果很好,也比较容易理解,我一般就是用这段代码创建XML文件。

二、读取、修改XML文件的某个节点的值
string path = "phone.xml";

XmlDocument doc = new XmlDocument();

doc.Load(path);

//读所有节点表

XmlNamespaceManager xnm = new XmlNamespaceManager(doc.NameTable);

//读取节点值

XmlNode node = doc.SelectSingleNode("/PhoneBook/Name", xnm); //node.InnerText 就是读取出来的值

//修改节点值

node.InnerText="要修改的内容";

//保存修改后的内容

doc.Save(path);
actonst
推荐于2017-10-06 · TA获得超过1.8万个赞
知道大有可为答主
回答量:8184
采纳率:80%
帮助的人:5203万
展开全部
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("photos.xml");
XmlNode photoNode = xmlDoc.SelectSingleNode("photos");
XmlElement newElement = xmlDoc.CreateElement("p");
XmlAttribute attr = xmlDoc.CreateAttribute("desc");
attr.Value = "xxx.jpg";
newElement.Attributes.SetNamedItem(attr);
photoNode.AppendChild(newElement);
xmlDoc.Save("photos.xml");
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f0c82b7
2012-02-28 · 超过10用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:35.5万
展开全部
学习楼上
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式