string xmlContent = @"<?xml version="1.0" encoding="utf-8" ?><Test></Test>";类似以上的xml内容(字符串)。怎么读进DataSet中
Demo code part 1: string xmlContent = @"<?xml version="1.0" encoding="utf-8" ?><Test></Test>";
byte[] bytes = _cryptor.Encoding.GetBytes(xmlContent ); MemoryStream memoryStream = new MemoryStream();
memoryStream.Read(bytes , 0, bytes .Length); DataSet dataSet = new DataSet();
dataSet.ReadXml(memoryStream );//这里老是提示,缺少根元素。 Demo code part 2: string xmlContent = @"<?xml version="1.0" encoding="utf-8" ?><Test></Test>"; MemoryStream memoryStream = new MemoryStream();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.InnerXml = xmlContent ; xmlDoc.Save(memoryStream); DataSet dataSet = new DataSet();
dataSet.ReadXml(memoryStream );//这里老是提示,缺少根元素。我现在在做游戏中的一些数据存取。遇到这问题。但用文件方式的路径(path)来作参数,就没有问题。如:
string path=string.Format("{0}{1}",Application.StartPath,@"\Test.xml");
DataSet dataSet = new DataSet();
dataSet.ReadXml(path);//这里又没问题了。那个Test.xml的内容与上面的一样。因为我对整个.xml文件的内容都加密了。Help~~~~~~~~~
Demo code part 1: string xmlContent = @"<?xml version="1.0" encoding="utf-8" ?><Test></Test>";
byte[] bytes = _cryptor.Encoding.GetBytes(xmlContent ); MemoryStream memoryStream = new MemoryStream();
memoryStream.Read(bytes , 0, bytes .Length); DataSet dataSet = new DataSet();
dataSet.ReadXml(memoryStream );//这里老是提示,缺少根元素。 Demo code part 2: string xmlContent = @"<?xml version="1.0" encoding="utf-8" ?><Test></Test>"; MemoryStream memoryStream = new MemoryStream();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.InnerXml = xmlContent ; xmlDoc.Save(memoryStream); DataSet dataSet = new DataSet();
dataSet.ReadXml(memoryStream );//这里老是提示,缺少根元素。我现在在做游戏中的一些数据存取。遇到这问题。但用文件方式的路径(path)来作参数,就没有问题。如:
string path=string.Format("{0}{1}",Application.StartPath,@"\Test.xml");
DataSet dataSet = new DataSet();
dataSet.ReadXml(path);//这里又没问题了。那个Test.xml的内容与上面的一样。因为我对整个.xml文件的内容都加密了。Help~~~~~~~~~
根元素 Test 应该不是这样写的吧。
ds.ReadXML
遍历XML获取数据
XmlDocument doc= new XmlDocument();
doc.Load(xmlFile);
using System.Xml;
using System.Xml.XPath;
using System.Data;
class ReadXML
{
public static void Main()
{
string sFile = "ReadXml.xml";
//method 1
XmlDocument doc = new XmlDocument();
doc.Load(sFile);
XmlNode node = doc.DocumentElement["News"]["Content"];
Console.WriteLine(node.InnerText);
//method2
node = doc.SelectSingleNode("//Content");
Console.WriteLine(node.InnerText);
//similarly
node = doc.DocumentElement.SelectSingleNode("News/Content");
Console.WriteLine(node.InnerText);
//method 3
DataSet ds = new DataSet();
ds.ReadXml(sFile);
Console.WriteLine(ds.Tables[0].Rows[0]["Content"].ToString());
//method 4
XmlTextReader reader = new XmlTextReader(sFile);
while (reader.Read())
{
if (reader.Name == "Content")
{
Console.WriteLine("***" + reader.ReadString());
break;
}
}
reader.Close();
//method 5
XPathDocument xpdoc = new XPathDocument(sFile);
XPathNavigator xpnv = xpdoc.CreateNavigator();
xpnv.MoveToFirstChild();
xpnv.MoveToFirstChild();
xpnv.MoveToFirstChild();
xpnv.MoveToNext();xpnv.MoveToNext();xpnv.MoveToNext();
Console.WriteLine("pathnavigator:" + xpnv.Value);
}
}
string filename = ImagesPath + "Xml/AdminLink.xml";
node.Load(filename);
XmlNodeReader reader = new XmlNodeReader(node);
DataSet set = new DataSet();
set.ReadXml(reader);
RepWebList.DataSource = set;
RepWebList.DataBind();
reader.Close();
set.ReadXml(reader);
最方便咯
{
string file = @"D:\a\FileClass.xml";
string lastFile = @"D:\a\FileClass.xsd";
DataSet ds = new DataSet();
ds.ReadXml(file);
System.IO.StreamWriter writer1 = new System.IO.StreamWriter(lastFile);
ds.WriteXmlSchema(writer1);
writer1.Close();
}
doc.Load("data.xml");
XmlNodeList nodeList;
XmlNode root = doc.DocumentElement;
nodeList = root.SelectNodes("descendant::node");
foreach (XmlNode node in nodeList)
{
//将这个点的信息写入到dataset中去
}
2. Dataset读取XML流要先读取其架构或者自己设置架构,然后把流重置到开始位置。你加上那三行应该就可以了。
string xmlContent = @"<?xml version="1.0" encoding="utf-8" ?><Test></Test>";
byte[] bytes = _cryptor.Encoding.GetBytes(xmlContent ); MemoryStream memoryStream = new MemoryStream();
memoryStream.Read(bytes , 0, bytes .Length);
DataSet dataSet = new DataSet();
memoryStream.Seek(0, SeekOrigin.Begin);
dataSet.ReadXmlSchema(memoryStream);
memoryStream.Seek(0, SeekOrigin.Begin);
dataSet.ReadXml(memoryStream );
还是XML的问题呀~
DataSet dsRet = new DataSet();
XmlDocument doc = new XmlDocument();
MemoryStream mStream = new MemoryStream();
doc.LoadXml(strRet);
doc.Save(mStream);
mStream.Seek(0, SeekOrigin.Begin);
dsRet.ReadXml(mStream);