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

简介:   在查询xml时有时会遇到带有前缀的xml,例如:“”  这时像往常一样查询就会报错,类似于“需要命名空间管理器或 XsltContext。此查询具有前缀、变量或用户定义的函数”这样的错误。  所以需要引入命名空间管理器,代码如下 XmlDocument document = new XmlDocument(); document.

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

目录
相关文章
|
27天前
|
XML Java 数据库连接
mybatis中在xml文件中通用查询结果列如何使用
mybatis中在xml文件中通用查询结果列如何使用
24 0
|
2月前
|
XML C# 数据格式
使用C#操作XML文件
使用C#操作XML文件
12 0
|
8月前
|
XML 存储 C#
C#三十 Ado.net和XML
C#三十 Ado.net和XML
38 0
|
18天前
|
XML C# 数据格式
C# 解析XML文件
C# 解析XML文件
24 1
|
2月前
|
XML 开发框架 .NET
C# .NET面试系列八:ADO.NET、XML、HTTP、AJAX、WebService
## 第二部分:ADO.NET、XML、HTTP、AJAX、WebService #### 1. .NET 和 C# 有什么区别? .NET(通用语言运行时): ```c# 定义:.NET 是一个软件开发框架,提供了一个通用的运行时环境,用于在不同的编程语言中执行代码。 作用:它为多语言支持提供了一个统一的平台,允许不同的语言共享类库和其他资源。.NET 包括 Common Language Runtime (CLR)、基础类库(BCL)和其他工具。 ``` C#(C Sharp): ```c# 定义: C# 是一种由微软设计的面向对象的编程语言,专门为.NET 平台开发而创建。 作
179 2
|
4月前
|
XML C# 数据格式
c# 追加 数据至xml文件
c# 追加 数据至xml文件
22 0
|
4月前
|
XML 前端开发 定位技术
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
27 0
|
4月前
|
XML Java 数据格式
Spring5源码(17)-Spring解析xml默认命名空间
Spring5源码(17)-Spring解析xml默认命名空间
22 0
|
4月前
|
SQL 开发框架 .NET
C#进阶-LINQ表达式之GroupBy分组查询
本篇文章我们将演示LINQ扩展包基础语法里的GroupBy分组查询,并实现投影等实际操作中常用的类型转换手法。目前LINQ支持两种语法,我会在每个案例前先用大家熟知的SQL语句表达,再在后面用C#的两种LINQ语法分别实现。LINQ语法第一次接触难免感到陌生,最好的学习方式就是在项目中多去使用,相信会有很多感悟。
67 0
|
4月前
|
XML Java 数据库连接
Mybatis之简介、使用操作(安装、XML、SqlSession、映射的SQL语句、命名空间、作用域和生命周期)
【1月更文挑战第2天】 MyBatis 是一款优秀的持久层框架 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程 MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 【Plain Old Java Objects,普通的 Java对象】映射成数据库中的记录。
110 2
Mybatis之简介、使用操作(安装、XML、SqlSession、映射的SQL语句、命名空间、作用域和生命周期)