C#查询XML解决“需要命名空间管理器”问题

  在查询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/*管理器*/) ,这样问题就得到了解决。

时间: 2024-08-10 23:17:30

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

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

解决SQL Server管理器无法连接远程数据库Error: 1326错误 我们在在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例的问题,错误描述信息摘录如下: An error has occurred while establishing a connection to the server. (provider: Named Pipes Provider, error: 40 – Could not open a con

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

使用mybatis-spring的主要原因之一就是: mybatis-spring允许mybatis参与到spring 事务中. mybatis-spring leverage[use (something) to maximum advantage)] 存在的DataSourceTransactionManager , 而无需为mybatis特意新建一个新的事务管理. 一旦Spring tansaction manager被配置,你可以像配置Spring中的transactions as yo

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

今天EBS安装补丁之后,因为停并发管理器的时候,因为关闭EBS应用时,并发管理器没有在前台停止,就直接停了应用服务,导致启动时,并发管理器直接起不来了,使用adcmctl.sh也没有办法启动. 进入系统管理员->管理并发管理器 查看并发管理器状态,发现并发管理器都处于 System Hold, Fix Manager before resetting counters 系统暂挂,在重置计数器之前修复管理程序 的状态. 解决方法: 先终止最上面的标准并发管理器,等待所有并发管理器完全停止之后,再使

Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 2 -使用XQuery 查询XML数据

原文:Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 2 -使用XQuery 查询XML数据 XQuery 是一个浏览/返回XML实例的标准语言. 它比老的只能简单处理节点的XPath表达式更丰富. 你可以同XPath一样使用.或是遍历所有节点,塑造XML实例的返回等. 作为一个查询语言, 你需要一个查询处理引擎. SQL Server 数据库通过XML数据类型方法的T-SQL 语句来处理XQuery. SQL Server 并不支持所有的X

Spring jdbctemplate和事务管理器 全注解配置 不使用xml

/** * spring的配置类,相当于bean.xml */@Configuration//@Configuration标注在类上,相当于把该类作为spring的xml配置文件中的<beans>// 作用为:配置spring容器(应用上下文)@ComponentScan("com.zxh")//需要扫描的包@Import({JdbcConfig.class,TransactionConfig.class})//子配置类@PropertySource("jdbcC

元数据管理器中存在错误。 实例化来自文件“\\?\C:\Program Files\Microsoft SQL Server\MSAS11.MSSQLSERVER\OLAP\Data\Tfs_Analysis.0.db\vDimTestCaseOverlay.874.dim.xml”的元数据对象时出错。

一.发现问题 启动SQLSERVER的数据分析服务失败 查看系统日志错误如下: 双击错误后显示详细错误: 元数据管理器中存在错误. 实例化来自文件“\\?\C:\Program Files\Microsoft SQL Server\MSAS11.MSSQLSERVER\OLAP\Data\Tfs_Analysis.0.db\vDimTestCaseOverlay.874.dim.xml”的元数据对象时出错. 二.解决问题-数据库 然后我手动尝试将“C:\Program Files\Microso

记一次AD域域管理员密码更改导致某系统群集管理器故障排查解决过程

环境描述 某公司有一套系统,2台Windows2003系统,采用自带的群集管理器功能实现双机热备功能,正常情况下,服务器10.1.1.1承载中间件应用服务,服务器10.1.1.2承载数据库服务,仅当其中一台服务器故障时才会把资源切换至另一台. 系统名称 系统版本 IP地址 备注 S-EIP-APP Windows2003ENTSP2 10.1.1.1 采用Windows2003自带的群集管理器实现双机热备功能 S-EIP-DATA Windows2003ENTSP2 10.1.1.2 故障表现

Asp.Net WebApi 集成OWIN架构后,出现 “没有 OWIN 身份验证管理器与此请求相关联” 的解决办法

在Asp.Net WebApi 项目中开启OWIN模块之后,如果没有在OWIN的Startup类中配置认证方式,调用WebApi的相关Controller和Action就会出现如下异常: 出现错误. 没有 OWIN 身份验证管理器与此请求相关联. ExceptionType:System.InvalidOperationException StackTrace: 在 System.Web.Http.Owin.PassiveAuthenticationMessageHandler.Suppress

第20课-数据库开发及ado.net 可空值类型,资料管理器,多条件查询,Case

第20课-数据库开发及ado.net 可空值类型,资料管理器,多条件查询,Case SqlHelper using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Text; namespace _02省市联动 { public static  class SqlHelper { //