易截截图软件、单文件、免安装、纯绿色、仅160KB

C#小Tip:Xml操作简明手册 3

3)读取、查找
当你手头有一个xml文件后,可以使用XmlDocument.Load()方法将其加载进来以便处理,所以“读取”没有什么可说的。而“查找”操作往往涉及XPath,这里只是我认为的比较常用到的查找操作,XPath这玩意实在是很强大很暴力。
 
回头看示例文档xmlsample.xml,我们可能遇到这样的需求:
(A)查找歌曲“Hurt”的演唱者?
(B)查找流派为“R&B”的歌曲名称?
(C)查找发行年份在2004以前的歌曲的演唱者?
(D)倒数第二首歌的歌曲名称?
 
针对上述问题,你当然可以通过递归遍历各结点来查找,不过使用XPath将是更为高效的方案:
问题(A)
Code
XmlDocument doc = new XmlDocument();
doc.Load("xmlsample.xml");
//    
XmlNodeList xnl = doc.SelectNodes("/music/song[@title='Hurt']/artist");
foreach (XmlNode n in xnl)
{
     Console.WriteLine(n.InnerText);
}
(以“/”起始的路径必定是绝对路径,即从根元素起。而对属性的引用前面要加“@”)
 
问题(B)
Code
XmlDocument doc = new XmlDocument();
doc.Load("xmlsample.xml");
//
XmlNodeList xnl = doc.SelectNodes("/music/song[genre='R&B']");
foreach (XmlNode n in xnl)
{
    if (n is XmlElement)
     {
         Console.WriteLine(((XmlElement)n).GetAttribute("title"));
     }
}
(不同于对属性的引用,对子节点的引用不需要使用“@”)
 
问题(C)
Code
XmlDocument doc = new XmlDocument();
doc.Load("xmlsample.xml");
//
XmlNodeList xnl = doc.SelectNodes("/music/song[year<2004]/artist");
foreach (XmlNode n in xnl)
{
     Console.WriteLine(n.InnerText);
}
(数值一样可以比较。)
 
问题(D)
Code
XmlDocument doc = new XmlDocument();
doc.Load("xmlsample.xml");
//
XmlNode n = doc.SelectSingleNode("/music/song[last()-1]");
if (n is XmlElement)
{
     Console.WriteLine(((XmlElement)n).GetAttribute("title"));
}
(具有一系列的内置函数,如last()、po


相关文档:

SQLServer 2005 中的类型 与 C# 中的类型 对应 关系

<Language from="SQL" To="C#">
   <Type from="bigint" To="long" />
   <Type from="binary" To="object" />
   <Type from="bit" To="bool" />
   <Type from="char" To="string" />
   <Type from="datetime" To="DateTime" ......

c# 从XML读数据

C#
 DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("~/Config/User_yhlx_Jb.xml"));
DataView dv = ds.Tables[0].DefaultView;
//dv.RowFilter = "State=0";
this.DropDownList1.DataSource = dv;
this.DropDownList1.DataTextField = "text";
this ......

c# XML序列化与反序列化

原先一直用BinaryFormatter来序列化挺好,可是最近发现在WinCE下是没有办法进行BinaryFormatter操作,很不爽,只能改成了BinaryWriter和BinaryReader来读写,突然想到能不能用XML来序列化?于是在网上查了些资料便写了些实践性代码,做些记录,避免以后忘记。
序列化对象
    public class People
  ......

C#与C/C++的区别的地方


编译:C程序直接编译成标准的二进制可执行的代码,但C#的源程序并不是被编译成二进制可执行的形式,而是一种中间语言(MSIL),类似JAVA中的字节码
结构体:C#的结构体与C++的结构体相似。但是C#的结构体与类是不同的,而且不支持继承。
预编译:C#中存在预编译的指令支持条件编译,警告,错误报告和编译行控制。其指令 ......

.net(c#)读取flash(swf)文件的尺寸

用了别人的代码,推荐+备忘。
原帖地址:
.net(c#)读取flash(swf)文件的尺寸
http://www.cnblogs.com/nasdaqhe/archive/2008/07/02/1234357.html
用.NET读取Flash格式文件信息
http://www.cnblogs.com/gmm/archive/2007/07/17/310675.html
我使用了第一个帖子中的代码,第一个帖子的代码参考的是第二个帖子:)
The ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号