关于读XML的问题 按理说应该得到10才对,然后你又没说报错信息,不好判断原因。建议你设个断点,看看NodeList[i].ChildNodes[1]就是是个什么东东。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ASP.NET读取XML示例 //调用公共类中的GetData方法,读取XML文件中的数据 private object GetData(DataTable dt,string sColumnName,string dColumnName,string sValue) { DataRow[] rows = dt.Select(sColumnName + "='" + sValue + "'"); if(rows.Length <= 0) return null; return rows[0][dColumnName]; }//CodeGo.net///调用的公共类方法GetData实现读取XML操作public class XmlDatabase { public XmlDatabase() { } #region 获取XML中的数据 public static DataTable GetData(string path,string tableName) { //创建XmlDocument类的实例 XmlDocument xmldoc = new XmlDocument(); //调用XmlDocument类中的Load()方法加载XML文件 xmldoc.Load(path); //创建DataTable类型的变量dt DataTable dt = new DataTable(); ///获取根节点 XmlNode rootNode = xmldoc.SelectSingleNode("/" + tableName + "s"); //判断节点及其子节点是否为空,为空将返空值 if(rootNode == null) return null; if(rootNode.ChildNodes.Count <= 0) return null; ///创建保存记录的数据列 foreach(XmlAttribute attr in rootNode.ChildNodes[0].Attributes) { dt.Columns.Add(new DataColumn(attr.Name,typeof(string))); } ///创新获取数据节点的XPath string xmlPath = "/" + tableName + "s/" + tableName; //获取XML节点下的所有节点 XmlNodeList nodeList = xmldoc.SelectNodes(xmlPath); //遍历所有节点 foreach(XmlNode node in nodeList) { //创建数据表行,并在其中添加数据 DataRow row = dt.NewRow(); foreach(DataColumn column in dt.Columns) { ///读取每一个属性 row[column.ColumnName] = node.Attributes[column.ColumnName].Value; } //将数据表行添加到数据表中 dt.Rows.Add(row); } //返回DataTable对象dt return dt; }//GridView控件绑定数据页面显示(略) 你把节点写错了,应该是newsList,而不是NodeList XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("C:\\1.xml"); XmlNodeList NodeList = xmlDoc.SelectNodes("/qgconfig/indexpanle"); string indexconfig = NodeList[0].ChildNodes[0].InnerText; XmlNodeList newsList = xmlDoc.SelectNodes("/qgconfig/topnews"); for (int i = 0; i < newsList.Count; i++) { tfields = newsList[i].ChildNodes[0].InnerText; pagesize = newsList[i].ChildNodes[1].InnerText; sdiv = newsList[i].ChildNodes[2].InnerText; stype = newsList[i].ChildNodes[3].InnerText; stitle = newsList[i].ChildNodes[4].InnerText; sclass = newsList[i].ChildNodes[5].InnerText; } 你循环newList,然后循环里去获取NodeList??那第一个当然跟上面的一样第二个,索引溢出了 帮帮忙 小问题 谢谢 因为用了session传值,导致网站地图的连接无法返回,有办法解决吗?? 两个小问题 點一個Button,如何使改業面一個Iframe的地址轉成自己想要的網址 VS.Net环境点击运行怎么老出错? 高分请教!Datagrid中实现css功能,或实现这样的效果!急~~~~~~~~~~~~~~~ 才开始学,一个小问题,难,,,请教? 未将对象引用设置到对象的实例 最简单的送分问题(在线等待) 大家看这两句到底有什么不同 怎么用.net把带html标签的字符导出到Excel 怎么获取html服务器控件option里绑定的值
//调用公共类中的GetData方法,读取XML文件中的数据
private object GetData(DataTable dt,string sColumnName,string dColumnName,string sValue)
{
DataRow[] rows = dt.Select(sColumnName + "='" + sValue + "'");
if(rows.Length <= 0) return null;
return rows[0][dColumnName];
}//CodeGo.net/
//调用的公共类方法GetData实现读取XML操作
public class XmlDatabase
{
public XmlDatabase() { } #region 获取XML中的数据
public static DataTable GetData(string path,string tableName)
{
//创建XmlDocument类的实例
XmlDocument xmldoc = new XmlDocument();
//调用XmlDocument类中的Load()方法加载XML文件
xmldoc.Load(path);
//创建DataTable类型的变量dt
DataTable dt = new DataTable();
///获取根节点
XmlNode rootNode = xmldoc.SelectSingleNode("/" + tableName + "s");
//判断节点及其子节点是否为空,为空将返空值
if(rootNode == null) return null;
if(rootNode.ChildNodes.Count <= 0) return null;
///创建保存记录的数据列
foreach(XmlAttribute attr in rootNode.ChildNodes[0].Attributes)
{
dt.Columns.Add(new DataColumn(attr.Name,typeof(string)));
}
///创新获取数据节点的XPath
string xmlPath = "/" + tableName + "s/" + tableName;
//获取XML节点下的所有节点
XmlNodeList nodeList = xmldoc.SelectNodes(xmlPath);
//遍历所有节点
foreach(XmlNode node in nodeList)
{
//创建数据表行,并在其中添加数据
DataRow row = dt.NewRow();
foreach(DataColumn column in dt.Columns)
{ ///读取每一个属性
row[column.ColumnName] = node.Attributes[column.ColumnName].Value;
}
//将数据表行添加到数据表中
dt.Rows.Add(row);
}
//返回DataTable对象dt
return dt;
}
//GridView控件绑定数据页面显示(略)
xmlDoc.Load("C:\\1.xml");
XmlNodeList NodeList = xmlDoc.SelectNodes("/qgconfig/indexpanle");
string indexconfig = NodeList[0].ChildNodes[0].InnerText; XmlNodeList newsList = xmlDoc.SelectNodes("/qgconfig/topnews");
for (int i = 0; i < newsList.Count; i++)
{
tfields = newsList[i].ChildNodes[0].InnerText;
pagesize = newsList[i].ChildNodes[1].InnerText;
sdiv = newsList[i].ChildNodes[2].InnerText;
stype = newsList[i].ChildNodes[3].InnerText;
stitle = newsList[i].ChildNodes[4].InnerText;
sclass = newsList[i].ChildNodes[5].InnerText;
}
那第一个当然跟上面的一样
第二个,索引溢出了