在查询xml时有时会遇到带有前缀的xml,例如:“<ows:Keyword></ows:Keyword>”

  这时像往常一样查询就会报错,类似于“需要命名空间管理器或 XsltContext。此查询具有前缀、变量或用户定义的函数”这样的错误。

  所以需要引入命名空间管理器,代码如下

            XmlDocument document = new XmlDocument();
document.Load(feed.Uri);//获取xml文档 XmlNamespaceManager xmlm = new XmlNamespaceManager(document.NameTable);//将管理器指定到文档
xmlm.AddNamespace("content", "http://purl.org/rss/1.0/modules/content/");//添加命名空间
xmlm.AddNamespace("dc", "http://purl.org/dc/elements/1.1/");
xmlm.AddNamespace("wfw", "http://wellformedweb.org/CommentAPI/");
xmlm.AddNamespace("atom", "http://www.w3.org/2005/Atom");
xmlm.AddNamespace("sy", "http://purl.org/rss/1.0/modules/syndication/");
xmlm.AddNamespace("slash", "http://purl.org/rss/1.0/modules/slash/");

  那么你可能会问:到哪里去找命名空间的url?其实他们就在xml文档的头部,可与从xml文档中获得。

  到这里问题一般就得到了解决,但在我的实际使用中还是报了错,报错内容和上面基本一样。

  那么解决办法就是在查询带有前缀的Node时再次指定管理器,如下代码 item.SelectSingleNode("content:encoded", xmlm/*管理器*/) ,这样问题就得到了解决。

C#查询XML解决“需要命名空间管理器”问题的更多相关文章

  1. 解决SQL Server管理器无法连接远程数据库Error: 1326错误

    解决SQL Server管理器无法连接远程数据库Error: 1326错误 我们在在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例 ...

  2. 解决SQL Server管理器无法连接远程数据库的问题(转)

    add by zhj: 本文最后那个数据库别名没搞明白,在我的测试中没有建别名,是可以的.远程登陆时,服务器名称: 服务器IP,端口号 (如223.42.155.248,52134 如果是默认端口号1 ...

  3. 解决“程序包管理器控制台”输入命令找不到Nuget包问题

    问题: 问题原因: Nuget源的地址上不去 解决办法: 1.将Nuget源更新为可以国内使用的官方Nuget源. 1)打开VS2013:工具-->Nuget程序包管理器-->程序包管理器 ...

  4. 【转】解决virt-manager启动管理器出错:unsupported format character

    来源:http://blog.csdn.net/z_yttt/article/details/71192144 经验证OK.   今天打开virt-manager出错,报错信息如下: 启动管理器出错: ...

  5. 需要命名空间管理器或 XsltContext。此查询具有前缀、变量或用户定义的函数 及 多属性节点查询

    第一个问题, 1. 首先需要引入命名空间, 2. 其次,在用xpath查找结点时,在selectNodes等方法中再次带入命名空间 如 XmlDocument doc = new XmlDocumen ...

  6. [mybatis-spring] Transaction 事务/事务处理/事务管理器

    使用mybatis-spring的主要原因之一就是: mybatis-spring允许mybatis参与到spring 事务中. mybatis-spring leverage[use (someth ...

  7. EBS并发管理器启动失败,系统暂挂,在重置计数器之前修复管理程序

    今天EBS安装补丁之后,因为停并发管理器的时候,因为关闭EBS应用时,并发管理器没有在前台停止,就直接停了应用服务,导致启动时,并发管理器直接起不来了,使用adcmctl.sh也没有办法启动. 进入系 ...

  8. Jmeter的Cookie管理器调试与参数化

     默认系统都是需要登录,才能操作其它接口,所以需要添加一个HTTP Cookie 管理器,默认Cookie管理器是关闭的,需要修改jmeter配置文件jmeter.properties,该文件在jme ...

  9. xml和集合混合使用-图书管理器

    package com.book; public class Book { private int id; //图书编号 private String name; //图书名称 private Str ...

随机推荐

  1. 01-01_环境准备_pyenv

    本文重点: 了解pyenv pyenv下载及安装 pyenv 使用 安装ipython 一.了解pyenv 经常遇到这样的情况: 系统自带的 Python 是 2.6,自己需要 Python 2.7 ...

  2. [国嵌笔记][028][Bootloader设计蓝图]

    Bootloader的作用就是启动Linux内核 U-Boot简介 1.U-Boot是用于多种嵌入式CPU(ARM.x86.MIPS等)的bootloader程序,U-Boot不仅支持嵌入式Linux ...

  3. 一对多(多对一)关系中的inverse和cascade属性

    转载请标明出处 http://www.cnblogs.com/haozhengfei/p/6049276.html 首先说一下inverse: "inverse" 直译过来就是&q ...

  4. Spark算子--flatMapValues

    转载请标明出处http://www.cnblogs.com/haozhengfei/p/e7a46cecc65720997392516d553d9891.html flatMapValues--Tra ...

  5. python 模块中的 __init__.py __main__.py

    python中文件夹想作为一个模块被引用,则在文件夹内必须要包含 __init__.py 文件,即使此文件为空. 如果此模块想要运行则必须要包含 __main__.py 文件.接下来说下两个文件起到的 ...

  6. 分布式文件系统FastDFS动态扩容

    当用户量越来越大,则集群中某个group总会到达其极限,这时就得扩展集群的容量了. FastDFS的扩容分为对group纵向扩容和横向扩容 纵向扩容 指在同一个group组中增加服务器,实现数据冗余, ...

  7. Thinkphp5+PHPExcel实现批量上传表格数据功能

    http://www.jb51.net/article/129262.htm 1.首先要下载PHPExcel放到vendor文件夹下,我的路径是:项目/vendor/PHPExcel/,把下载的PHP ...

  8. tp路由+伪静态+去掉index.php

    浏览:10536 发布日期:2013/10/08 分类:技术分享 关键字: 路由 伪静态 去掉index.php 之前一个网友说能不能达到这样的效果,www.olcms.com/news/id.htm ...

  9. 邓_mysql_面试

    问题1:你如何确定 MySQL 是否处于运行状态? 答案: Debian 上运行命令service mysql status,在RedHat 上运行命令service mysqld status.然后 ...

  10. Oracle临时表空间组

    Oracle 10g之前,同一用户的多个会话只可以使用同一个临时表空间,因为在给定的时间只有一个临时表空间默认给用户,为了解决这个潜在的瓶颈,Oracle支持临时表空间组即包含多个临时表空间的集合.临 ...