如何使用 C# 从 xml 获取节点 - 我做错了什么?

2023-12-26

命名空间和 XML 仍然让我感到困惑。

这是我的 XML(来自 SOAP 请求)

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <MyResponse xmlns="http://tempuri.org/">
         <OutputXML xmlns="http://tempuri.org/XMLSchema.xsd">
            <Result>
               <OutputXML>
                  <Result>
                     <Foo>
                        <Bar />
                     </Foo>
                  </Result>
               </OutputXML>
            </Result>
         </OutputXML>
      </MyResponse>
   </soap:Body>
</soap:Envelope>

我试图从 SOAP 响应中提取实际的 XML 部分(从 Foo 元素开始):

var nsmgr = new XmlNamespaceManager(document.NameTable);
nsmgr.AddNamespace("soap", "http://schemas.xmlsoap.org/soap/envelope/");
nsmgr.AddNamespace("", "http://tempuri.org/");
nsmgr.AddNamespace("", "http://tempuri.org/XMLSchema.xsd");

var xml = document.DocumentElement
    .SelectSingleNode("Foo", nsmgr)
    .InnerXml;

但 SelectSingleNode 返回 null。我已经尝试了一些不同的变体,但无法让任何东西发挥作用。我不明白什么?


试试这个:

var nsmgr = new XmlNamespaceManager(document.NameTable);
nsmgr.AddNamespace("aaa", "http://tempuri.org/XMLSchema.xsd");

var xml = document.DocumentElement
    .SelectSingleNode("aaa:Foo", nsmgr)
    .InnerXml;

这是因为Default namespaces没有前缀。

您可以使用GetElementsByTagName直接使用命名空间 uri:

var xml = document.GetElementsByTagName("Foo", 
             "http://tempuri.org/XMLSchema.xsd")[0].InnerXml;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 C# 从 xml 获取节点 - 我做错了什么? 的相关文章

  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 扩展 XSD 文件

    我有一个带有枚举类型的 XSD 文件 我想创建一个 扩展 XSD 文件 它添加一些额外的枚举 但其他方面的行为就像主 XSD 一样 例如 主 XSD 文件包含以下内容
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • XSD 嵌套元素

  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲

随机推荐

  • PHP MySQL 小查询超时,必须将限制设置为 10

    在为相对较小的查询调用 mysql query 时 我收到 PHP 超时错误 因此我必须将限制设置为 10 Fatal error Maximum execution time of 120 seconds exceeded in C xa
  • 角度路由when()无需映射到控制器或模板

    可以使用when 而不映射到任何控制器或模板吗 这就是我配置路线的方式 app config function routeProvider locationProvider locationProvider html5Mode true r
  • 如何在签署 pdf 文件时将时间戳属性添加到认证详细信息

    我想在证书中显示时间戳属性 如图所示 我应该在签名中设置什么 这是我添加标志信息的代码 private SignerInformation signTimeStamp SignerInformation signer throws IOEx
  • python“字符串”模块?

    所以我正在阅读这个旧模块 我认为是 2002 年左右 它有这一行 导入字符串 Python 是否要求您在能够使用字符串类型变量或其他东西之前显式导入字符串模块 我没有看到它在代码中这样使用 string something The stri
  • 天青错误。您没有权限查看该目录或页面

    当我导航到部署的 azure 网站时 出现错误 You do not have permission to view this directory or page 在我的 web config 中
  • 如何生成像github这样的个人访问令牌?

    这是理论问题 我想在 net core webapi 中创建类似 Github 个人访问令牌 的机制 该机制已经与 Identity Server 4 具有 ResourceOwnerPassword 流 理论上 我想根据用户请求手动生成令
  • 用分隔符分割字符串

    我目前正在尝试拆分字符串1128 2这样我就可以有两个不同的值 例如 value1 1128 和 value2 2 这样我就可以单独使用每个值 我努力了split 但没有成功 Grails 是否有特定的方法来处理这个问题 或者有更好的方法
  • 在 UML 中包含或扩展?

    据我所知 扩展关系是当用例是可选的时 但包含是当需要用例的操作时 但不是所有时候 我想为注册系统建模一个用例 但对使用哪种关系有疑问 我有两个可能的选择 我更热衷于 b 表示此操作的方式 因为修改数据和删除数据的部分不应该是可选的 它们用于
  • 如何在Windows中使用启用伪语言环境进行测试?

    Windows Vista引入了三个概念伪语言环境 http msdn microsoft com en us library dd319106 28v vs 85 29 aspx Pseudo Locale Locale Name LCI
  • PhoneGap Build 上的每个平台配置 (config.xml)

    我有一个在 PhoneGap Build 上远程构建的 PhoneGap 3 1 应用程序 在我的应用程序中有一个config xml文件位于项目的根目录下 该文件包含
  • 指向连续二维数组的指针

    我正在使用带标志的 gcc 版本 4 8 0 Wall std gnu99 我需要使用 C 中的 malloc 为连续的二维数组动态分配内存 这个事实是不容谈判的 但是 为了便于使用 我仍然希望能够使用方便的方式访问数组x r c 符号 这
  • 无法在 Select2 下拉列表中选择项目

    我正在开发一个使用 Select2 版本 3 5 1 的应用程序 设置此下拉 自动完成字段的 HTML 如下所示
  • C 中的静态函数

    在 C 中将函数设为静态有什么意义 制作一个函数static对其他翻译单元隐藏它 这有助于提供封装 https en wikipedia org wiki Encapsulation computer programming 助手文件 c
  • 如何使用 Identity Server 授权 Blazor WebAssembly SPA 应用

    我正在编写一个演示 Blazor WebAssembly SPA 技术演示应用程序 但我在身份验证方面遇到一些问题 我将使用 Identity Server 进行授权 但我找不到任何支持它的库 我发现的所有教程都指导如何使用 Blazor
  • 游戏手柄支持安卓

    我正在尝试向我的游戏添加游戏手柄支持 但我找不到任何地方如何从游戏手柄的操纵杆获取运动事件 我有类似的东西 但它似乎从未被调用或做任何事情 我正在使用 JellyBean 在 XOOM 上进行测试 我的游戏手柄可用于在菜单中导航 Overr
  • UITableViewCell 具有基于宽度的固有高度

    所以我制作了自定义视图 ExpressionView 来可视化数学表达式 表达式的每一部分都是 UILabel 保存一个数字或运算 并且标签在 ExpressionView 内以右对齐的行对齐 我希望 ExpressionView 具有由外
  • CarrierWave:为多种类型的文件创建 1 个上传器

    我想为多种类型的文件 图像 pdf 视频 创建 1 个上传器 对于每个 content type 都会有不同的操作 我如何定义文件的 content type 例如 if image version thumb do process pro
  • 脚本从头到尾运行顺利,但没有发生预期的结果

    该项目旨在研究一种新的社交媒体 https booyah live https booyah live 我的需求是 1 从遵循特定配置文件的配置文件中收集数据 2 我的帐户使用此数据来跟踪收集的个人资料 3 除其他可能的选项外 还可以取消关
  • 在 React Native 应用程序中包含需要加密模块的节点包的最简单方法是什么?

    React Native 应用程序确实包含内置节点包 例如 Crypto 提供 polyfill 的最佳方法是什么 以便我可以使用需要这些内置模块的节点包 None
  • 如何使用 C# 从 xml 获取节点 - 我做错了什么?

    命名空间和 XML 仍然让我感到困惑 这是我的 XML 来自 SOAP 请求