在.Net 里用XPath的case-insensitive 的查询

2016-02-19 20:12 4 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享在.Net 里用XPath的case-insensitive 的查询教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - Web开发 】

  使用XmlDocument.SelectNodes(String xpath) 是很方便的方法, 可是写XPath 却要费点功夫,
  今天发现XPath1.0里没有 case-insensitive 的 function 所以很难做下面的查询

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

  root
     AAA
           BBB
                 CCCddd/CCC
           BBB
              CCC GEN/CCC //也可能是Gen, gen, GEn
           /BBB
     /AAA
     AAA
           BBB
                 CCCDFE/CCC
           BBB
              CCC Gen/CCC
           /BBB
     /AAA
  /root

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

  查找所有的CCC节点值为GEN(case-insensitive)的AAA节点, 如果没有后面的Xpath, 要做到以上查询, 挺复杂, 如果会用Xpath 的 translate function, 就很容易了

  xpath = @"//root/AAA/BBB/[translate(CCC, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')] = 'GEN'/parent::*"
  XmlNodeList nodelist = xmlDoc.SelectNodes(xpath);

  xpath的意思是, 把//root/AAA/BBB/CCC节点的value 全部变成大写, 然后和'GEN'比较, 然后返回AAA节点.
  http://www.cnblogs.com/happyy2k/archive/2006/10/31/545128.html

来源:https://www.tulaoshi.com/n/20160219/1623000.html

延伸阅读
ACCESS库的通配符为: 要进行模糊查找,则必须使用通配符,ACCESS库的通配符和SQL SERVER的通配符不一样。 在SQL Server中的通配符为: %     与任何个数的字符匹配 -      与单个字符匹配 在C#中通过ACCESS数据库进行模糊查找,即用  Like 函数 Like '%ddd%' &nbs...
标签: Web开发
刚刚看到一篇关于在.NET 中发送Email的文章《从asp.net页面发送电子邮件》看到使用的还是System.Web.Mail命名空间下的类。我们都知道,在.NET 1.1下大部分都是使用这个命名空间下的类来发送邮件的,使用SmtpMail的Send静态方法可以很简单的发送Email,但由于这个类调用的是Windows2000版本以上的操作系统的CDO组件来发送邮件,不管是什么错...
在开发中碰到这样的问题:winform窗口中定义了基类窗体,在设计器中打开子类窗体的时候出现诸如“窗口无法使用设计器进行进行设计,发生了......的异常”的信息,并且窗体无法打开,也就没办法使用窗体设计器进行界面的设计。但是运行起来一切正常。 这个问题的原因就是在解决方案资源管理器中双击窗体打开进行设计的时候,会去执行它的基类...
2 数据模型 XPath 将一个 XML 文档作为一棵树进行操作。该树型模型仅仅是概念上的并且不要求任何特定实现。在XML信息集映射(http://www.w3.org/TR/xpath#infoset)中描述了该模型与 XML 信息集的关系。树包含节点,共有7种节点类型:· 根节点· 元素节点· 正文节点· 属性节点· 命名空间节点· 处理指令节点· ...
在使用 mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,我只有用二重循环查询...

经验教程

691

收藏

26
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部