现在有些XML文件,想把XML文件解析一下,把节点对应的值,放到一张datatable里面(像数据库中的表一样),返回这张表(作为数据源),在页面上用gridview显示出来,xml文件如下
<?xml version="1.0" encoding="utf-8" ?>
- <response>
- <MODEL>
<modelid>5640</modelid>
<name>050601.esx</name>
<description>test</description>
<createdon>2009-05-11 14:31:24+0800</createdon>
<modifiedon>2009-05-11 14:33:28+0800</modifiedon>
<type>esx</type>
<size>207689</size>
<version>2</version>
</MODEL>
<MODEL>
<modelid>5640</modelid>
<name>050601.esx</name>
<description>test</description>
<createdon>2009-05-11 14:31:24+0800</createdon>
<modifiedon>2009-05-11 14:33:28+0800</modifiedon>
<type>esx</type>
<size>207689</size>
<version>2</version>
</MODEL>
</response>
最后显示的效果
modelid name·····version
5640 050601.esx 2
5640 050601.esx 2
<?xml version="1.0" encoding="utf-8" ?>
- <response>
- <MODEL>
<modelid>5640</modelid>
<name>050601.esx</name>
<description>test</description>
<createdon>2009-05-11 14:31:24+0800</createdon>
<modifiedon>2009-05-11 14:33:28+0800</modifiedon>
<type>esx</type>
<size>207689</size>
<version>2</version>
</MODEL>
<MODEL>
<modelid>5640</modelid>
<name>050601.esx</name>
<description>test</description>
<createdon>2009-05-11 14:31:24+0800</createdon>
<modifiedon>2009-05-11 14:33:28+0800</modifiedon>
<type>esx</type>
<size>207689</size>
<version>2</version>
</MODEL>
</response>
最后显示的效果
modelid name·····version
5640 050601.esx 2
5640 050601.esx 2
{
KSBMCONFIG _conf = new KSBMCONFIG ();
try
{
// Open an XML file
System.Xml.XmlTextReader reader;
reader = new System.Xml.XmlTextReader(XmlConfigFile);
while ( reader.Read() )
{
if((reader.NodeType == XmlNodeType.EndElement)
&&(reader.Name == "KSBM"))
{
break;
}
if(reader.IsStartElement ("ServerPath"))
{
reader.Read ();
_conf.ServerPath = reader.Value ;
}
else if(reader.IsStartElement ("SmtpServer"))
{
reader.Read ();
_conf.SMTPServer = reader.Value ;
}
else if(reader.IsStartElement ("ConnectString"))
{
reader.Read ();
_conf.ConnectString = reader.Value ;
}
}
return _conf;
}
catch
{
_conf.ConnectString = "";
_conf.ServerPath = "";
_conf.SMTPServer = "";
return _conf;
}
finally
{
}
}
string xml = @"<?xml version=""1.0"" encoding=""utf-8"" ?>
<response>
<MODEL>
<modelid>5640 </modelid>
<name>050601.esx </name>
<description>test </description>
<createdon>2009-05-11 14:31:24+0800 </createdon>
<modifiedon>2009-05-11 14:33:28+0800 </modifiedon>
<type>esx </type>
<size>207689 </size>
<version>2 </version>
</MODEL>
<MODEL>
<modelid>5640 </modelid>
<name>050601.esx </name>
<description>test </description>
<createdon>2009-05-11 14:31:24+0800 </createdon>
<modifiedon>2009-05-11 14:33:28+0800 </modifiedon>
<type>esx </type>
<size>207689 </size>
<version>2 </version>
</MODEL>
</response> ";
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] { new DataColumn("modelid"), new DataColumn("name"), new DataColumn("description"), new DataColumn("createdon"), new DataColumn("modifiedon"), new DataColumn("type"), new DataColumn("size"), new DataColumn("version") });
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
foreach (XmlNode node in doc.GetElementsByTagName("MODEL"))
{
DataRow dr = dt.NewRow();
for (int i = 0; i < node.ChildNodes.Count; i++)
{
dr[i] = node.ChildNodes[i].InnerText;
}
dt.Rows.Add(dr);
}
这个string xml报错么?不是string类型么
XmlDocument doc = new XmlDocument();
doc.Load("xml文件路径");
看来你真的是对XML很不熟悉