DataSet.ReadXml 方法[C#]
private void DemonstrateReadWriteXMLDocumentWithStreamReader(){
// Create a DataSet with one table and two columns.
DataSet OriginalDataSet = new DataSet("myDataSet");
OriginalDataSet.Namespace= "NetFrameWork";
DataTable myTable = new DataTable("myTable");
DataColumn c1 = new DataColumn("id", Type.GetType("System.Int32"));
c1.AutoIncrement= true;
DataColumn c2 = new DataColumn("item");
myTable.Columns.Add(c1);
myTable.Columns.Add(c2);
OriginalDataSet.Tables.Add(myTable);
// Add ten rows.
DataRow newRow;
for(int i = 0; i < 10; i++){
newRow = myTable.NewRow();
newRow["item"]= "item " + i;
myTable.Rows.Add(newRow);
}
OriginalDataSet.AcceptChanges();
// Print out values of each table in the DataSet using the
// function defined below.
PrintValues(OriginalDataSet, "Original DataSet");
// Write the schema and data to an XML file.
string xmlFilename = "myXmlDocument.xml";
// Use WriteXml to write the document.
OriginalDataSet.WriteXml(xmlFilename);
// Dispose of the original DataSet.
OriginalDataSet.Dispose();
// Create a new DataSet.
DataSet newDataSet = new DataSet("New DataSet");
// Read the XML document into the DataSet.
newDataSet.ReadXml(xmlFilename);
// Print out values of each table in the DataSet using the
// function defined below.
PrintValues(newDataSet,"New DataSet");
}private void PrintValues(DataSet ds, string label){
Console.WriteLine("\n" + label);
foreach(DataTable t in ds.Tables){
Console.WriteLine("TableName: " + t.TableName);
foreach(DataRow r in t.Rows){
foreach(DataColumn c in t.Columns){
Console.Write("\t " + r[c] );
}
Console.WriteLine();
}
}
}
private void DemonstrateReadWriteXMLDocumentWithStreamReader(){
// Create a DataSet with one table and two columns.
DataSet OriginalDataSet = new DataSet("myDataSet");
OriginalDataSet.Namespace= "NetFrameWork";
DataTable myTable = new DataTable("myTable");
DataColumn c1 = new DataColumn("id", Type.GetType("System.Int32"));
c1.AutoIncrement= true;
DataColumn c2 = new DataColumn("item");
myTable.Columns.Add(c1);
myTable.Columns.Add(c2);
OriginalDataSet.Tables.Add(myTable);
// Add ten rows.
DataRow newRow;
for(int i = 0; i < 10; i++){
newRow = myTable.NewRow();
newRow["item"]= "item " + i;
myTable.Rows.Add(newRow);
}
OriginalDataSet.AcceptChanges();
// Print out values of each table in the DataSet using the
// function defined below.
PrintValues(OriginalDataSet, "Original DataSet");
// Write the schema and data to an XML file.
string xmlFilename = "myXmlDocument.xml";
// Use WriteXml to write the document.
OriginalDataSet.WriteXml(xmlFilename);
// Dispose of the original DataSet.
OriginalDataSet.Dispose();
// Create a new DataSet.
DataSet newDataSet = new DataSet("New DataSet");
// Read the XML document into the DataSet.
newDataSet.ReadXml(xmlFilename);
// Print out values of each table in the DataSet using the
// function defined below.
PrintValues(newDataSet,"New DataSet");
}private void PrintValues(DataSet ds, string label){
Console.WriteLine("\n" + label);
foreach(DataTable t in ds.Tables){
Console.WriteLine("TableName: " + t.TableName);
foreach(DataRow r in t.Rows){
foreach(DataColumn c in t.Columns){
Console.Write("\t " + r[c] );
}
Console.WriteLine();
}
}
}
解决方案 »
- 错误: 在选定的数据源上未找到名为“PaperState”的字段或属性。
- objectlistview中限制checkbox的选中
- 征集常用Window Mobile API 函数
- 关于数据库分页的搜索条件问题????
- 对汉字进行URL编码的问题?
- [win32应用程序]我想在窗体画点东西,怎么还是灰灰的?
- 用DirectoryEntry修改域密码,旧密码依然可用
- 这里有一个POS机钱箱的控制程序(VC的),现在想在C#下使用,不知道怎么做,请高手赐教!
- C#怎么调用 类中的函数啊?
- How can I prevent the combobox from edting?
- 怎么学习,先听听各位的高见
- 使用DataTime该使用引用哪个命名空间?晕
el = doc.CreateElement("XML");
el.InnerText = "insert into tablename values('2','mary','mary mary','y','mary','business woman')";
el.SetAttribute("Text","我的管理");
el.SetAttribute("Index","1");
el.SetAttribute("Url","www.china.com");
doc.DocumentElement.AppendChild(el);
doc.Save("menu2.xml");解析:
XmlDocument doc = new XmlDocument();
doc.Load("menu2.xml");
XmlNodeList nodelist;
XmlElement root = doc.DocumentElement;
nodelist = root.SelectNodes("/root/XML[@Text='我的管理']");
再做个循环查找你要的节点就行了。
(using System.Xml;
using System.Xml.Serialization;)
声明一个Config.cs,结构与你需要读取的XML文件的结构一样,在这里假设为ExampleXml,然后在主程序中把你需要的数据设置为属性,这样,就可以使用下面的代码进行xml文件的读写了
XmlSerializer serializer = new XmlSerializer(typeof(ExampleXml));
ExampleXmlpo = serializer.Deserialize(reader) as ExampleXml;/*反序列化,即读取xml文件*/
ExampleXmlpo = serializer.Serialize(writer) as ExampleXml;/*序列化,即写xml文件*/
其中的reader和writer是TextWriter。这是我常用的方法,不知道是否可取。还请高手指点。
暴龙的例子,可以再具体些么?我笨还不止一点点,看不太明白!
using System.Data;
using System.Collections;
using System.Xml;
using System.IO;
using System.Text;namespace ConsoleTest
{
/// <summary>
/// ZZConsole 的摘要说明。
/// </summary>
public class ZZConsole
{
[STAThread]
static void Main(string[] args)
{
XmlDocument xdoc= new XmlDocument();
xdoc.Load(@"d:\test.xml");
DataSet ds = CreatDataSet();
XmlNodeList xList = xdoc.SelectNodes("//Item");
foreach(XmlNode xNode in xList)
{
DataRow dr = ds.Tables["Items"].NewRow();
dr["Item"] = xNode.Attributes["Name"].Value;
ds.Tables["Items"].Rows.Add(dr);
}
foreach(DataRow dr in ds.Tables["Items"].Rows)
{
Console.WriteLine(dr["Item"].ToString());
}
Console.ReadLine();
}
public static DataSet CreatDataSet()
{
DataSet ds = new DataSet();
DataTable dt = new DataTable("Items");
DataColumn dc = new DataColumn("Item",typeof(string));
dt.Columns.Add(dc);
ds.Tables.Add(dt);
return ds;
}
}
}
=======================================================
<?xml version="1.0" encoding="utf-8" ?>
<Root>
<Class Name="1">
<Item Name="Item11"/>
<Item Name="Item12"/>
<Item Name="Item13"/>
<Item Name="Item14"/>
</Class>
<Class Name="2">
<Item Name="Item21"/>
<Item Name="Item22"/>
<Item Name="Item23"/>
<Item Name="Item24"/>
</Class>
</Root>
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")[0].InnerText;
vv = myNodes[0].InnerText;
Console.WriteLine(vv);
//再修改
myNodes[0].InnerText = "67890";
doc.Save("d:\\text.xml");
Console.ReadLine();
}
}
}