如何将 XPath 与 XDocument 一起使用?

2023-11-27

有一个类似的问题,但似乎该解决方案在我的情况下不起作用:XDocument、XPath 和名称空间的怪异之处

这是我正在使用的 XML:

<?xml version="1.0" encoding="utf-8"?>
<Report Id="ID1" Type="Demo Report" Created="2011-01-01T01:01:01+11:00" Culture="en" xmlns="http://demo.com/2011/demo-schema">
    <ReportInfo>
        <Name>Demo Report</Name>
        <CreatedBy>Unit Test</CreatedBy>
    </ReportInfo>
</Report>

下面是我认为应该可以工作的代码,但它没有......

XDocument xdoc = XDocument.Load(@"C:\SampleXML.xml");
XmlNamespaceManager xnm = new XmlNamespaceManager(new NameTable()); 
xnm.AddNamespace(String.Empty, "http://demo.com/2011/demo-schema");
Console.WriteLine(xdoc.XPathSelectElement("/Report/ReportInfo/Name", xnm) == null);

有人有什么想法吗? 谢谢。


如果您有 XDocument,那么使用 LINQ-to-XML 会更容易:

var document = XDocument.Load(fileName);
var name = document.Descendants(XName.Get("Name", @"http://demo.com/2011/demo-schema")).First().Value;

如果您确定 XPath 是您需要的唯一解决方案:

using System.Xml.XPath;

var document = XDocument.Load(fileName);
var namespaceManager = new XmlNamespaceManager(new NameTable());
namespaceManager.AddNamespace("empty", "http://demo.com/2011/demo-schema");
var name = document.XPathSelectElement("/empty:Report/empty:ReportInfo/empty:Name", namespaceManager).Value;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 XPath 与 XDocument 一起使用? 的相关文章

  • 如何在 C# 中将 Json 转换为对象

    我想将 Json 转换为 C 中的对象 这里的 Json 是 值 e920ce0f e3f5 4c6f 8e3d d2fbc51990e4 如何使用 Object 问题看似愚蠢 但其实并不那么愚蠢 我没有简单的 Json 我有 IEnume
  • C# 中一次性对象克隆会导致内存泄漏吗?

    检查这个代码 class someclass IDisposable private Bitmap imageObject public void ImageCrop int X int Y int W int H imageObject
  • 在 Java 中通过 XSLT 分解 XML

    我需要转换具有嵌套 分层 表单结构的大型 XML 文件
  • 混合模型优先和代码优先

    我们使用模型优先方法创建了一个 Web 应用程序 一名新开发人员进入该项目 并使用代码优先方法 使用数据库文件 创建了一个新的自定义模型 这 这是代码第一个数据库上下文 namespace WVITDB DAL public class D
  • 如何向 Mono.ZeroConf 注册服务?

    我正在尝试测试 ZeroConf 示例http www mono project com Mono Zeroconf http www mono project com Mono Zeroconf 我正在运行 OpenSuse 11 和 M
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • 用于在标头更改时重新编译的简单 C 项目的示例 makefile

    有谁有完整的 makefile 可以执行以下操作 如果 HEADER 文件发生更改 则重建项目 cpp 文件在 makefile 中列出 头文件未在 makefile 中列出 头文件允许与 cpp 文件具有不同的名称 部分cpp文件没有头文
  • OpenGL:如何检查用户是否支持glGenBuffers()?

    我检查了文档 它说 OpenGL 版本必须至少为 1 5 才能制作glGenBuffers 工作 用户使用的是1 5版本但是函数调用会导致崩溃 这是文档中的错误 还是用户的驱动程序问题 我正在用这个glGenBuffers 对于VBO 我如
  • 来自嵌入图像的 BitmapSource

    我的目标是在 WPF 窗口上重写 OnRender 方法中绘制图像 someImage png 它是嵌入资源 protected override void OnRender System Windows Media DrawingCont
  • 测量进程消耗的 CPU 时钟

    我用 C 语言编写了一个程序 它是作为研究结果创建的程序 我想计算程序消耗的确切 CPU 周期 精确的循环次数 知道我怎样才能找到它吗 The valgrind tool cachegrind valgrind tool cachegrin
  • 让网络摄像头在 OpenCV 中工作

    我正在尝试让我的网络摄像头在 Windows 7 64 位中的 OpenCV 版本 2 2 中捕获视频 但是 我遇到了一些困难 OpenCV 附带的示例二进制文件都无法检测到我的网络摄像头 最近我发现这篇文章表明答案在于重新编译一个文件 o
  • XPath:通过当前节点属性选择当前和下一个节点的文本

    首先 这是从我之前的问题 https stackoverflow com questions 5202187 xpath select current and next nodes text by current node attribut
  • SQLAPI++ 的免费替代品? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何免费 也许是开源 的替代品SQLAPI http www sqlapi com 这个库看起来
  • 读取依赖步行者输出

    I am having some problems using one of the Dlls in my application and I ran dependency walker on it i am not sure how to
  • 以编程方式创建 Blob 存储容器

    我有一个要求 即在创建公司时 在我的 storageaccount 中创建关联的 blob 存储容器 并将容器名称设置为传入的字符串变量 我已尝试以下操作 public void AddCompanyStorage string subDo
  • 使用 gcc 时在头文件中查找定义的好方法是什么?

    在使用 gcc 时 有人有推荐的方法在头文件中查找定义吗 使用 MSVC 时 我只需右键单击并选择 转到定义 这非常好 我使用过 netbeans gcc 它确实有代码帮助 包括到定义的超链接 所以这是一种选择 但是 我想知道是否有任何其他
  • Xamarin Forms Binding - 访问父属性

    我无法访问页面的 ViewModel 属性以便将其绑定到 IsVisible 属性 如果我不设置 BindingContext 我只能绑定它 有没有办法可以在设置 BindingContext 的同时访问页面的 viewmodel root
  • 调用 .ToArray() 时出现 ArgumentException

    我有一个经常被清除的列表 代码完全是这样的 VisitorAgent toPersist List
  • 如何高效计算连续数的数字积?

    我正在尝试计算数字序列中每个数字的数字乘积 例如 21 22 23 98 99 将会 2 4 6 72 81 为了降低复杂性 我只会考虑 连续的数字 http simple wikipedia org wiki Consecutive in
  • ContentDialog Windows 10 Mobile XAML - 全屏 - 填充

    我在项目中放置了一个 ContentDialog 用于 Windows 10 上的登录弹出窗口 当我在移动设备上运行此项目时 ContentDialog 未全屏显示 并且该元素周围有最小的填充 在键盘上可见 例如在焦点元素文本框上 键盘和内

随机推荐

  • Python gc.get_count() 返回的 count0、count1 和 count2 值是什么

    python gc 包的文档对 gc get count 做了这样的描述 gc get count Return the current collection counts as a tuple of count0 count1 count
  • 在 Javascript 中使用引号和 innerHTML

    我编写了一些代码来让玩家了解故事的进展 当玩家单击按钮时 他们会看到一些新文本和更多选项 到目前为止一切顺利 但是当我传递带有附加参数的函数调用时 我需要单引号和双引号 但是 如果我同时使用两者 则会破坏innerHTML 代码如下 如果需
  • 如何获取JButton默认背景颜色?

    我用这个myButton setBackground myColor 改变JButton背景颜色为我的颜色 如何找到它原来的默认背景颜色 以便我可以将其更改回来 我知道我可以在更改和使用它之前保存它的默认背景颜色 但我想知道 Java 是否
  • 如何从 Json.NET 获取密钥列表?

    我正在使用 C 和 Json NET 如果我有一个 JObject 我想要对象内的键列表 类似于object Keys 返回对象内的键 这似乎是显而易见的 但我很难找到一种方法来做到这一点 Edit 我正在遍历该对象 并且我想在遍历时吐出对
  • 通过 Net:SSH 出现“非绝对主页”错误

    有问题的代码 Net SSH start server name user 这返回 非绝对家 用户 实际上有一个主目录 一种建议的方法是使用 IdentityFile 的完整路径修改 ssh config 这并没有解决问题 最疯狂的部分是
  • MATLAB:强制 doc 命令打开指定的参考 HTML 页面

    假设我在包中编写了一个类 名为mypackage myclass 我已经为包和类编写了自己的 HTML 文档 并将其包含在 MATLAB 帮助浏览器中 如下所述MATLAB 文档 我可以通过使用帮助浏览器直接导航到该 HTML 文档来显示该
  • 如何使用 Javascript 而不是 jQuery 用 JSON 数据动态填充 html 元素?

    我有以下 JSON 数据片段 items title sample 1 author author 1 title sample 2 author author 2 如何使用此数据填充以下 html 元素 div class news st
  • 在 iOS 中以编程方式将 SQLite 数据导出到 Excel

    在我的应用程序中 我使用 sqlite 作为后端 在本地存储数据 我能够将数据插入到我的表中 但是我想要做的是 想要以编程方式将所有 sqlite 数据导入到 excel 中 而且我不想为此应用程序使用服务器 一旦生成 excel 工作表
  • 检测 HiDPI Windows Phone 8 设备

    如何检测运行 Windows Phone 8 的 HiDPI 设备 我测试的手机是诺基亚 Lumia 920 它具有 4 5 英寸 1280 768 屏幕 即 gt 300 dpi IE支持min resolution在 CSS 中但不是m
  • 数组连接功能不起作用

    由于某种原因 我无法理解为什么我的数组连接方法不起作用 这是供审查的快速代码 function rot13 str LBH QVQ VG var strAry str split var transformed strAry map fun
  • Centos 5.5 上的 RabbitMQ 安装问题

    我一直在尝试让rabbitmq server 2 4 0在Centos上启动并运行 5 5 在 Amazon AWS 实例上 我的实例使用以下内核 2 6 18 xenU ec2 v1 2 我尝试使用以下方法安装 erlang 和rabbi
  • 动态禁用联系表单 7 字段验证

    在我的联系表单 7 中 我有两个单选按钮 它们根据用户所做的选择显示和隐藏联系表单中的字段 当您单击 电话 单选按钮时 脚本 JS 而非 jQuery 将确保隐藏电子邮件字段并仅显示电话字段 当您单击电子邮件单选按钮时 将显示电子邮件字段并
  • 在 XCode 中编译 IOS 应用程序时出现错误“文件未找到:-fobjc-arc”

    添加 OCMock 框架后 我收到了那个奇怪的错误 ld file not found fobjc arc clang error linker command failed with exit code 1 use v to see in
  • 运行包中的所有测试时出现 JUnit java.lang.OutOfMemoryError

    当加载包中的所有单元测试时 make 任务会抛出 java lang OutOfMemoryError Java 堆空间错误 不过 如果我运行每个子包中的所有测试 所有测试都会加载并完成 只有当我尝试运行父包中的所有测试时 才会出现 OOM
  • 是否可以使用 GSON 将带有句点的 JSON 属性名称反序列化为嵌套对象?

    这是我尝试使用 GSON 使用的 JSON 类型的示例 person name Philip father name Yancy 我想知道是否可以将此 JSON 反序列化为以下结构 public class Person private S
  • JavaScript 中以 20(或 X)为步长舍入?

    我的数字从 50 开始到 190 结束 步数始终为 20 gt 50 70 90 190 现在我从文本文件中得到一个数字 该数字必须根据此进行四舍五入 因此 如果我得到 55 它应该变成 70 如果我得到 77 它应该是 90 如果我得到
  • 无法从 iOS 7 中的 App Store 收据获取original_application_version

    我正在尝试为当前客户实现从付费模式到免费增值模式的无缝过渡 但在从收据中获取original application version 时遇到问题 我的应用程序仅适用于 iOS 7 您可能知道 Apple 在 iOS 7 中引入了统一收据 如
  • 现有 Angular 4 项目中的 Ionic 框架

    我正在使用自己的 CSS 进行 Angular 项目 现在几乎已经完成了 我想在我的项目中使用带有 cordova 的 ionic 框架 我尝试过 但它不起作用 有没有什么方法和分步过程可以在我现有的 Angular 4 项目中添加离子框架
  • 实例化核心 Volley 对象

    我对 Volley 有点不确定的是 RequestQueue ImageLoader 对象和 ImageLoader ImageCache 实现 在我遇到的示例中 它们在 onCreate 中实例化 但为每个活动创建新的请求队列似乎没有意义
  • 如何将 XPath 与 XDocument 一起使用?

    有一个类似的问题 但似乎该解决方案在我的情况下不起作用 XDocument XPath 和名称空间的怪异之处 这是我正在使用的 XML