惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
M
MIT News - Artificial intelligence
F
Fortinet All Blogs
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
Microsoft Security Blog
Microsoft Security Blog
N
Netflix TechBlog - Medium
G
Google Developers Blog
L
LangChain Blog
腾讯CDC
大猫的无限游戏
大猫的无限游戏
U
Unit 42
Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
罗磊的独立博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
The GitHub Blog
The GitHub Blog
博客园_首页
GbyAI
GbyAI

博客园 - james.dong

初次使用T4引擎生成数据库表实体 - james.dong - 博客园 加快大表关联查询的速度(oracle) DataTable 排序 - james.dong - 博客园 查询oracle数据库中所有视图和表的信息 日期验证正规表达式( YYYY-MM-DD YYYY-MM-DD hh:mm:ss YYYY/MM/DD) windows2000server下 iis 无法下载 .exe , .dll文件的解决办法。 - james.dong C#中datagridview使用技巧系列谈(-)让输入焦点从左到右收藏 oracle中创建自增字段 .net 序列化和反序列化自定义treenode类 LotusScript基础知识(二) LotusScript基本语法知识(一) LotusScript中Option 的含义 Lotusscript中Instr()函数的功能和用法 Combox控件实现类似TextBox控件的ReadOnly=true时的背景颜色和字体颜色!(WinForm) WPF 中的 BitmapEffect 的 各种样式 WPF相关文章汇总 使用List泛型,怎么排序 asp.net2.0解决用户控件图片相对路径出错的问题,ResolveUrl的用法 window.showModalDialog()时没有显示修改后的数据 - james.dong - 博客园
System.Xml.XmlDocument.SelectNodes() 查询不到节点问题? -...
james.dong · 2008-10-31 · via 博客园 - james.dong

今天在使用xmldocument.selectnodes()函数时遇到查询满足一定条件的节点时,无法查找到相应的节点。

后来google了一下,原来是自定义名字空间惹的祸。

下面是xml文件内容:

<?xml version="1.0" encoding="utf-8"?>

<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">

 <aaaa>

   <bbbb>1234</bbb>

   <bbbb>4567</bbbb>

   <bbbb>8989</bbbb>

</Report>

-----------------------------------------------------------------------------------------

using System.Xml;

public class aaaa

{

    public void Search1()

   {//我用下列代码查询 无节点

      XmlDocument xmlDoc = new  XmlDocument();

        xmlDoc.Load("*.xml");

        string filter = "//*[contains(bbbb,'8989']";

        XmlnodeList list = xmlDoc.SelectNodes(filter);//此处查询的节点个数为0

   }

   public void Search2()

   {//用这个方法就可以查询到了

      XmlDocument xmlDoc = new  XmlDocument();

        xmlDoc.Load("*.xml");

        XmlNamespaceManager m = new XmlNamespaceManager ( xmldoc.NameTable );

        m.AddNamespace("ab",

"http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition");

        string filter = "//ab:*[contains(ab:bbbb,'8989']";

        XmlnodeList list = xmlDoc.SelectNodes(filter);//此处查询的节点个数为1

   } 

}

当使用xmldocument.selectnodes()时,如果xml文件中有自定义的名字空间的话,在使用selectnodes()函数时,增加名字空间。