private void CreateXML() { // This method shows how to build // an XML file all from code. XmlDocument xDoc = new XmlDocument(); XmlProcessingInstruction xPI; XmlComment xComment; XmlElement xElmntRoot; XmlElement xElmntFamily; xPI = xDoc.CreateProcessingInstruction("xml", "version='1.0'"); xDoc.AppendChild(xPI); xComment = xDoc.CreateComment("Family Information"); xDoc.AppendChild(xComment); xElmntRoot = xDoc.CreateElement("xml"); xDoc.AppendChild(xElmntRoot); // Rather than creating new nodes individually, // count on the fact that AppendChild returns a reference // to the newly added node. xElmntFamily = (XmlElement) (xElmntRoot.AppendChild(xDoc.CreateElement("Family"))); xElmntFamily.AppendChild(xDoc.CreateElement("Father")); // Obviously this could fail if we don't have permission. // Note that if the file exists, Save just overwrites. // You might want to check for its existance like this: //if File.Exists(mstrModifyFile) { // if MessageBox.Show(string.Format("Do you want to overwrite the file {0}?", mstrModifyFile), this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes { // xDoc.Save(mstrModifyFile) // } //} xDoc.Save(mstrModifyFile); // Note that the XML that is output is not 'pretty'. // The parser doesn't introduce whitespace like // carriage returns, etc. this.txtXMLDisplay.Text = xDoc.OuterXml; }看microsoft的101 C# Samples
foreach(XmlNode xnf in xnl) { XmlElement xe=(XmlElement)xnf; Console.WriteLine(xe.GetAttribute("genre"));//显示属性值 Console.WriteLine(xe.GetAttribute("ISBN"));
XmlNodeList xnf1=xe.ChildNodes; foreach(XmlNode xn2 in xnf1) { Console.WriteLine(xn2.InnerText);//显示子节点点文本 }
using System; using System.IO; using System.Text; using System.Diagnostics; using System.Threading; using System.Collections; using System.Data; using System.Xml; using System.Management; using System.Net; namespace ZZ { class ZZConsole { [STAThread] static void Main(string[] args) { string strXml="<?xml version=\"1.0\"?>" +"<Data>" +"<Head>" +"<Nodeid>1111</Nodeid>" +"<Subid>2222</Subid>" +"<Version>2004</Version>" +"<Date>20040302</Date>" +"<Time>101500</Time>" +"</Head>" +"<Body>" +"<Code>01</Code>" +"<Name>深圳</Name>" +"<IdType>0</IdType>" +"<Idno>110258740824082</Idno>" +"</Body>" +"</Data>"; XmlDocument doc = new XmlDocument(); doc.LoadXml(strXml); string vv;
读XML中元素的值我解决啦!
问题就是怎么将值写入指定的元素中去!
谢谢~
{
// This method shows how to build
// an XML file all from code.
XmlDocument xDoc = new XmlDocument();
XmlProcessingInstruction xPI;
XmlComment xComment;
XmlElement xElmntRoot;
XmlElement xElmntFamily; xPI = xDoc.CreateProcessingInstruction("xml", "version='1.0'");
xDoc.AppendChild(xPI);
xComment = xDoc.CreateComment("Family Information");
xDoc.AppendChild(xComment);
xElmntRoot = xDoc.CreateElement("xml");
xDoc.AppendChild(xElmntRoot); // Rather than creating new nodes individually,
// count on the fact that AppendChild returns a reference
// to the newly added node.
xElmntFamily = (XmlElement) (xElmntRoot.AppendChild(xDoc.CreateElement("Family")));
xElmntFamily.AppendChild(xDoc.CreateElement("Father")); // Obviously this could fail if we don't have permission.
// Note that if the file exists, Save just overwrites.
// You might want to check for its existance like this:
//if File.Exists(mstrModifyFile) {
// if MessageBox.Show(string.Format("Do you want to overwrite the file {0}?", mstrModifyFile), this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes {
// xDoc.Save(mstrModifyFile)
// }
//}
xDoc.Save(mstrModifyFile);
// Note that the XML that is output is not 'pretty'.
// The parser doesn't introduce whitespace like
// carriage returns, etc.
this.txtXMLDisplay.Text = xDoc.OuterXml;
}看microsoft的101 C# Samples
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book genre="fantasy" ISBN="2-3631-4">
<title>Oberon's Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
</bookstore>
1、往<bookstore>节点中插入一个<book>节点:
XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load("bookstore.xml");
XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找<bookstore>
XmlElement xe1=xmlDoc.CreateElement("book");//创建一个<book>节点
xe1.SetAttribute("genre","李赞红");//设置该节点genre属性
xe1.SetAttribute("ISBN","2-3631-4");//设置该节点ISBN属性
XmlElement xesub1=xmlDoc.CreateElement("title");
xesub1.InnerText="CS从入门到精通";//设置文本节点
xe1.AppendChild(xesub1);//添加到<book>节点中
XmlElement xesub2=xmlDoc.CreateElement("author");
xesub2.InnerText="候捷";
xe1.AppendChild(xesub2);
XmlElement xesub3=xmlDoc.CreateElement("price");
xesub3.InnerText="58.3";
xe1.AppendChild(xesub3);
root.AppendChild(xe1);//添加到<bookstore>节点中
xmlDoc.Save("bookstore.xml"); //================
结果为:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book genre="fantasy" ISBN="2-3631-4">
<title>Oberon's Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
<book genre="李赞红" ISBN="2-3631-4">
<title>CS从入门到精通</title>
<author>候捷</author>
<price>58.3</price>
</book>
</bookstore> 2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。
XmlNodeList nodeList=xmlDoc.SelectSingleNode("bookstore").ChildNodes;//获取bookstore节点的所有子节点
foreach(XmlNode xn in nodeList)//遍历所有子节点
{
XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型
if(xe.GetAttribute("genre")=="李赞红")//如果genre属性值为“李赞红”
{
xe.SetAttribute("genre","update李赞红");//则修改该属性为“update李赞红”
XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach(XmlNode xn1 in nls)//遍历
{
XmlElement xe2=(XmlElement)xn1;//转换类型
if(xe2.Name=="author")//如果找到
{
xe2.InnerText="亚胜";//则修改
break;//找到退出来就可以了
}
}
break;
}
}
xmlDoc.Save("bookstore.xml");//保存。
//================= 最后结果为:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book genre="fantasy" ISBN="2-3631-4">
<title>Oberon's Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
<book genre="update李赞红" ISBN="2-3631-4">
<title>CS从入门到精通</title>
<author>亚胜</author>
<price>58.3</price>
</book>
</bookstore>
3、删除 <book genre="fantasy" ISBN="2-3631-4">节点的genre属性,删除 <book genre="update李赞红" ISBN="2-3631-4">节点。
XmlNodeList xnl=xmlDoc.SelectSingleNode("bookstore").ChildNodes;
foreach(XmlNode xn in xnl)
{
XmlElement xe=(XmlElement)xn;
if(xe.GetAttribute("genre")=="fantasy")
{
xe.RemoveAttribute("genre");//删除genre属性
}
else if(xe.GetAttribute("genre")=="update李赞红")
{
xe.RemoveAll();//删除该节点的全部内容
}
}
xmlDoc.Save("bookstore.xml"); //====================
最后结果为:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book ISBN="2-3631-4">
<title>Oberon's Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
<book>
</book>
</bookstore>
4、显示所有数据。
XmlNode xn=xmlDoc.SelectSingleNode("bookstore");
XmlNodeList xnl=xn.ChildNodes;
foreach(XmlNode xnf in xnl)
{
XmlElement xe=(XmlElement)xnf;
Console.WriteLine(xe.GetAttribute("genre"));//显示属性值
Console.WriteLine(xe.GetAttribute("ISBN"));
XmlNodeList xnf1=xe.ChildNodes;
foreach(XmlNode xn2 in xnf1)
{
Console.WriteLine(xn2.InnerText);//显示子节点点文本
}
using System.IO;
using System.Text;
using System.Diagnostics;
using System.Threading;
using System.Collections;
using System.Data;
using System.Xml;
using System.Management;
using System.Net;
namespace ZZ
{
class ZZConsole
{
[STAThread]
static void Main(string[] args)
{
string strXml="<?xml version=\"1.0\"?>"
+"<Data>"
+"<Head>"
+"<Nodeid>1111</Nodeid>"
+"<Subid>2222</Subid>"
+"<Version>2004</Version>"
+"<Date>20040302</Date>"
+"<Time>101500</Time>"
+"</Head>"
+"<Body>"
+"<Code>01</Code>"
+"<Name>深圳</Name>"
+"<IdType>0</IdType>"
+"<Idno>110258740824082</Idno>"
+"</Body>"
+"</Data>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(strXml);
string vv;
XmlNodeList myNodes = doc.GetElementsByTagName("Version");
vv = myNodes[0].InnerText;
//修改
myNodes[0].InnerText = "123455";
Console.WriteLine(vv);
myNodes = doc.SelectNodes("//Version");
vv = myNodes[0].InnerText;
Console.WriteLine(vv);
//修改
myNodes[0].InnerText = "67890";
doc.Save("d:\\text.xml");
Console.ReadLine();
}
}
}
// Create new file (<playerName>.xml) in savegames directory
XmlTextWriter writer = new XmlTextWriter(filename, null);
writer.Formatting = Formatting.Indented;
writer.Indentation = 2;
writer.WriteProcessingInstruction("xml",
"version='1.0'");
writer.WriteStartElement("savegame");
writer.Close();
doc.Load(filename);
// Add all elements
XmlNode root = doc.DocumentElement;
XmlElement playerName = doc.CreateElement("playerName");
playerName.InnerText = name;
XmlElement lastPlayedNameSet =
doc.CreateElement("lastPlayedNameSet");
lastPlayedNameSet.InnerText = levelSet.Filename;
XmlElement lastFinishedLevel =
doc.CreateElement("lastFinishedLevel");
lastFinishedLevel.InnerText = "0";
XmlElement levelSets = doc.CreateElement("levelSets");
XmlElement nodeLevelSet = doc.CreateElement("levelSet");
XmlAttribute xa = doc.CreateAttribute("title");
xa.Value = levelSet.Title;
nodeLevelSet.Attributes.Append(xa);
XmlElement lastFinishedLevelInSet =
doc.CreateElement("lastFinishedLevelInSet");
lastFinishedLevelInSet.InnerText = "0";
nodeLevelSet.AppendChild(lastFinishedLevelInSet);
levelSets.AppendChild(nodeLevelSet);
root.AppendChild(playerName);
root.AppendChild(lastPlayedNameSet);
root.AppendChild(lastFinishedLevel);
root.AppendChild(levelSets);
ds.ReadXml("MenuOptions.xml",XmlReadMode.Auto);
从xml文件读到dataset里