能对XML文件里的数据进行筛选吗? where are you processing the xml file? use XmlDocument's DOM methods or XSLT transformation 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个笨办法,把xml的内容读入DataSet的DataTable里,再在DataTable里判断行列取得相应数据呵呵,我也期待能看到更好的办法 如果这样那直接用DataTable不是更好吗?请问DOM是什么?怎么操作的? 用xmldocument对象直接操作xmldom是 document object model文档对象模型具体的操作你到搜索里去找“xml”,有很多这样的问题 用xmldocument对象直接操作xmldom是 document object model文档对象模型具体的操作你到搜索里去找“xml”,有很多这样的问题 当然可以:XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load(fileName); XmlElement xmlRootNode=xmlDoc.DocumentElement; System.Xml.XmlNodeList selNodes= xmlRootNode.SelectNodes("//hello"); //查询方法,得到结果集 不懂XML,再请问,这样筛选到的数据怎么填充到DataSet里?System.Xml.XmlNodeList selNodes= xmlRootNode.SelectNodes("//hello"); 这样是整个文档的数据都填充进去,我只要一部分,要怎么写?DataSet ds = new DataSet();ds.ReadXml(Server.MapPath("resultxml.xml")); 筛选到的数据怎么填充到DataSet里? --既然你最后还是要填充DataSet,那干吗非要用xml去筛选,用DataTable、 DataView不就可以了? 错了,错了,不要填充到DataSet里面!!!要取得number大于003的记录,下面这个条件应该怎么写呢?xmlRootNode.SelectNodes("???");XML文件:<?xml version="1.0" standalone="yes" ?> <Schema1> <bool number="001" name="aaa"/> <bool number="002" name="bbb"/> <bool number="003" name="ccc"/> <bool number="004" name="ddd"/> <bool number="005" name="eee"/> <bool number="006" name="fff"/> </Schema1> XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load("resultxml.xml");XmlElement xmlRootNode=xmlDoc.DocumentElement;System.Xml.XmlNode selNodes=xmlRootNode.SelectSingleNode("//Schema1");for(int i=0;i<selNodes.ChildNodes.Count;i++){ Response.Write(selNodes.ChildNodes[i].Attributes["number"].Value);}上面这样写可以执行,但是为什么这一句一改就不行了呢?这个条件应该怎么写才行???System.Xml.XmlNode selNodes=xmlRootNode.SelectSingleNode("//Schema1//bool[@number='003']");出错:未将对象引用设置到对象的实例 请教:在SQL视图里添加一个自动编号列 怎么弄??? 求个递归写法。 ASP.NET 获取网站PR值 如何实现页面刷新 关于用户控件问题 50分求项目解决方案!!!不够再添! (在线等!) 如何将日期型变量只有年月日.没有时分秒. 事件为什么不执行啊? 寻求B2C网站项目兼职ASP.NET+C#(仿Duwamish) 为什么有些中文文件名的链接报无法找到该页? 如何在客户端控制动态生成的控件的可操作性? 再来两个。。。。
呵呵,我也期待能看到更好的办法
请问DOM是什么?怎么操作的?
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(fileName);
XmlElement xmlRootNode=xmlDoc.DocumentElement;
System.Xml.XmlNodeList selNodes= xmlRootNode.SelectNodes("//hello"); //查询方法,得到结果集
System.Xml.XmlNodeList selNodes= xmlRootNode.SelectNodes("//hello"); 这样是整个文档的数据都填充进去,我只要一部分,要怎么写?
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("resultxml.xml"));
--既然你最后还是要填充DataSet,那干吗非要用xml去筛选,用DataTable、 DataView不就可以了?
要取得number大于003的记录,下面这个条件应该怎么写呢?
xmlRootNode.SelectNodes("???");XML文件:
<?xml version="1.0" standalone="yes" ?>
<Schema1>
<bool number="001" name="aaa"/>
<bool number="002" name="bbb"/>
<bool number="003" name="ccc"/>
<bool number="004" name="ddd"/>
<bool number="005" name="eee"/>
<bool number="006" name="fff"/>
</Schema1>
xmlDoc.Load("resultxml.xml");
XmlElement xmlRootNode=xmlDoc.DocumentElement;System.Xml.XmlNode selNodes=xmlRootNode.SelectSingleNode("//Schema1");for(int i=0;i<selNodes.ChildNodes.Count;i++)
{
Response.Write(selNodes.ChildNodes[i].Attributes["number"].Value);
}上面这样写可以执行,但是为什么这一句一改就不行了呢?这个条件应该怎么写才行???
System.Xml.XmlNode selNodes=xmlRootNode.SelectSingleNode("//Schema1//bool[@number='003']");出错:未将对象引用设置到对象的实例