Descendants 在 Word 文档中获取零个元素

2023-12-14

我在更新 Word 文档中的超链接时遇到问题 (Q如何更新 Word 文档中的正文和超链接)并放大Descendants<T>()打电话不工作。这是我的代码:

using DocumentFormat.OpenXml.Packaging;      //from NuGet ClosedXML
using DocumentFormat.OpenXml.Wordprocessing; //from NuGet ClosedXML

WordprocessingDocument doc = WordprocessingDocument.Open(...filename..., true);
MainDocumentPart mainPart = doc.MainDocumentPart;
IEnumerable<Hyperlink> hLinks = mainPart.Document.Body.Descendants<Hyperlink>();

该文档打开正常,因为mainPart得到一个值。但hLinks没有元素。如果我在 Word 中打开 Word 文档,则会出现一个超链接并且可以使用。

在立即窗口中我看到以下值:

mainPart.Document.Body
-->
{DocumentFormat.OpenXml.Wordprocessing.Body}
    ChildElements: {DocumentFormat.OpenXml.OpenXmlChildElements}
    ExtendedAttributes: {DocumentFormat.OpenXml.EmptyEnumerable<DocumentFormat.OpenXml.OpenXmlAttribute>}
    FirstChild: {DocumentFormat.OpenXml.OpenXmlUnknownElement}
    HasAttributes: false
    HasChildren: true
    InnerText: "
       lots of data, e.g:
    ...<w:t>100</w:t>...

mainPart.Document.Body.Descendants<Text>().First()
-->
Exception: "Sequence contains no elements"

如果我什至找不到文本部分,我应该如何找到并替换超链接?


如果您确定正在使用 linq 搜索文件中的某些元素,但没有返回任何内容或者出现异常,则通常表明存在命名空间问题。

如果您发布整个文件,我可以更好地帮助您,但请检查您是否可以为命名空间添加别名,如下所示:

using W = DocumentFormat.OpenXml.Wordprocessing;

然后在你的Descendants打电话给你做这样的事情:

var hLinks = mainPart.Document.Body.Descendants<W.Hyperlink>();

This answer演示了另一个可以尝试的命名空间技巧。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Descendants 在 Word 文档中获取零个元素 的相关文章

  • 在 VS2017 下使用 Conan 和 CMake 项目进行依赖管理

    我正在尝试使用 CMake 与 VS2017 集成为 C 设置一个开发环境 以便在 Linux x64 下进行编译 为了更好地管理依赖关系 我选择使用 Conan 但我对这个软件还很陌生 我想知道让 VS2017 识别项目依赖关系的最佳方法
  • 如何使用 zlib 制作 .zip 文件

    我正在阅读zlib的文档 它相当详细 但我读到了这一行 输出数据将位于zlib格式 与 gzip 或zip formats http www zlib net zlib how html http www zlib net zlib how
  • Subversion 和 Visual Studio 项目的最佳实践

    我最近开始在 Visual Studio 中处理各种 C 项目 作为大型系统计划的一部分 该系统将用于替换我们当前的系统 该系统是由用 C 和 Perl 编写的各种程序和脚本拼凑而成的 我现在正在进行的项目已经达到了颠覆的临界点 我想知道什
  • 如何将带有自定义分配器的 std::vector 传递给需要带有 std::allocator 的函数?

    我正在使用外部库 pcl 因此我需要一个不会更改现有函数原型的解决方案 我正在使用的一个函数生成一个std vector
  • 劫持系统调用

    我正在编写一个内核模块 我需要劫持 包装一些系统调用 我正在暴力破解 sys call table 地址 并使用 cr0 来禁用 启用页面保护 到目前为止一切顺利 一旦完成 我将公开整个代码 因此如果有人愿意 我可以更新这个问题 无论如何
  • 对 boost 库的依赖项没有完整路径

    我已经成功构建了动态库 依赖于使用自定义前缀构建和安装的 boost 库 b2 install prefix PREFIX 然而 当我跑步时otool L在我的库中 我得到如下输出 libboost regex dylib compatib
  • 从 Code::Blocks 运行程序时出现空白控制台窗口 [重复]

    这个问题在这里已经有答案了 当我尝试在 Code Blocks 中构建并运行新程序时 控制台窗口弹出空白 我必须单击退出按钮才能停止它 它对我尝试过的任何新项目 包括 Hello world 都执行此操作 奇怪的是 它对于我拥有的任何旧项目
  • 从成员函数指针类型生成函子

    我正在尝试简化 通过make fn 预处理参数的函子的生成 通过wrap 对于 arity 的成员函数n 生成函子基本上可以工作 但到目前为止只能通过显式指定成员函数的参数类型来实现 现在我想从它处理的成员函数类型生成正确的函子 struc
  • 2D morton 码编码/解码 64 位

    如何将给定 x y 的莫顿代码 z 顺序 编码 解码为 32 位无符号整数 生成 64 位莫顿代码 反之亦然 我确实有 xy2d 和 d2xy 但仅适用于 16 位宽的坐标 产生 32 位莫顿数 在网上查了很多 但没有找到 请帮忙 如果您可
  • 为什么 clang 使用 -O0 生成低效的 asm(对于这个简单的浮点和)?

    我正在 llvm clang Apple LLVM 版本 8 0 0 clang 800 0 42 1 上反汇编此代码 int main float a 0 151234 float b 0 2 float c a b printf f c
  • C++ 插件的“最适合”动态类型匹配

    我有一个几乎所有东西都是插件的架构 该架构以图形用户界面为基础 其中每个插件都由一个 表面 即用户可以通过其与插件交互的 UI 控件 表示 这些表面也是插件 每当添加新插件时 瘦主机都会自动确定哪个可用表面与其最匹配的 UI 如何在 C 中
  • tabcontrol selectedindex 更改事件未被触发 C#

    嘿伙计们 我有一个很小的问题 请参阅下面的代码 this is main load private void Form1 Load object sender EventArgs e tabAddRemoveOperator Selecte
  • 0-1背包算法

    以下 0 1 背包问题是否可解 浮动 正值和 浮动 权重 可以是正数或负数 背包的 浮动 容量 gt 0 我平均有 这是一个相对简单的二进制程序 我建议用蛮力进行修剪 如果任何时候你超过了允许的重量 你不需要尝试其他物品的组合 你可以丢弃整
  • 使用 iTextSharp 5.3.3 和 USB 令牌签署 PDF

    我是 iTextSharp 和 StackOverFlow 的新手 我正在尝试使用外部 USB 令牌在 C 中签署 PDF 我尝试使用从互联网上挖掘的以下代码 Org BouncyCastle X509 X509CertificatePar
  • C 中带有指针的结构的内存开销[重复]

    这个问题在这里已经有答案了 我意识到当我的结构包含指针时 它们会产生内存开销 这里有一个例子 typedef struct int num1 int num2 myStruct1 typedef struct int p int num2
  • 在 C++17 中使用 成员的链接错误

    我在 Ubuntu 16 04 上使用 gcc 7 2 并且需要使用 C 17 中的新文件系统库 尽管确实有一个名为experimental filesystem的库 但我无法使用它的任何成员 例如 当我尝试编译此文件时 include
  • 在 Xamarin 中获取 OutOfMemoryException

    java lang OutOfMemoryError 考虑增加 JavaMaximumHeapSize Java 执行时内存不足 java exe 我的 Visualstudio Xamarin 项目出现内存不足异常 请帮助我如何解决此问题
  • 带有私有设置器的 EFCore Base 实体模型属性 - 迁移奇怪的行为

    实体模型继承的类内的私有设置器似乎会导致 EFCore 迁移出现奇怪的问题 考虑以下示例 其中有多个类 Bar and Baz 继承自Foo 跑步时Add Migration多次命令 添加 删除private修饰符 生成的模式在多个方面都是
  • 以 UTF8 而不是 UTF16 输出 DataTable XML

    我有一个 DataTable 我正在使用 WriteXML 创建一个 XML 文件 尽管我在以 UTF 16 编码导出它时遇到问题 并且似乎没有明显的方法来更改它 我了解 NET 在字符串内部使用 UTF 16 这是正确的吗 然后 我通过
  • 如何使用 C# 以低分辨率形式提供高分辨率图像

    尝试使用 300dpi tif 图像在网络上显示 目前 当用户上传图像时 我正在动态创建缩略图 如果创建的页面引用宽度为 500x500px 的高分辨率图像 我可以使用相同的功能即时转换为 gif jpg 吗 将创建的 jpg 的即将分辨率

随机推荐

  • Asp.Net core 长时间运行/后台任务

    以下是在 Asp Net Core 中实现长时间运行的后台工作的正确模式吗 或者我应该使用某种形式的Task Run TaskFactory StartNew with TaskCreationOptions LongRunning opt
  • 模运算符如何工作?

    假设我需要格式化数组的输出以显示每行固定数量的元素 我该如何使用模数运算来做到这一点 使用 C 下面的代码可以每行显示 6 个元素 但我不知道它是如何工作的以及为什么工作 for count 0 count lt size count co
  • 如何在多用户环境(500+)中处理 Eclipse?

    您将如何在拥有 500 名或更多开发人员的多用户和多站点环境中处理 Eclipse 让每个人下载自己的安装将导致一场支持和维护的噩梦 强迫每个人都使用集中安装感觉也不理想 并且会限制用户下载插件的选择 Edit 问题不是强迫用户选择Ecli
  • 如何使用 ZipKit 在 iOS 中压缩目录?

    我需要在 iOS 应用程序中压缩文档文件夹的子目录 在咨询了 Google 和其他 SO 帖子后 我发现 ZipKit 和 ZipArchive 作为两个提供此功能的开源项目 此时 我选择实现 ZipKit 因为它目前似乎比 ZipArch
  • 用 Java 找出您网站访问者的 IP 地址

    有没有简单可靠的方法来使用 Java 检测您的网站访问者 IP 地址 我正在尝试利用 Akismet 来检测我的博客文章 评论中的垃圾邮件 API 要求我指定评论者的 IP 地址 谢谢 致电ServletRequest getRemoteA
  • 如何在我的 Android 应用程序的可视化 C# Web 服务中调用 LINQ 中的用户定义函数?

    我目前正在开发一个应用程序 该应用程序将根据距离检索其他用户的位置 我有一个数据库 以纬度和经度存储所有用户位置信息 由于这两对经纬度之间距离的计算相当复杂 所以我需要一个函数来处理它 from a in db Location Where
  • 单击 #-links 时避免窗口跳转到顶部

    我有一个包含一些问题和答案的页面 默认情况下答案是折叠的 当他们单击问题时 我展开隐藏的答案 div 问题是 当我点击这些问题时 窗口跳到屏幕顶部 这不是一个大问题 但我觉得很烦人 因为我必须再次向下滚动到问题 链接看起来就像这样 a hr
  • 如何获取iPhone应用隐藏状态栏区域的触摸事件?

    我有一个隐藏状态栏的 iPhone 应用程序 但是 当我点击状态栏区域时 我的主视图没有收到任何触摸事件 我可以做些什么来解决这个问题吗 以下是我的应用程序设置的一些详细信息 如果重要的话 它是一个基于 OpenGL 的应用程序 该应用程序
  • 如何从 PHP 连接 Jms?

    我正在尝试在我的网站上实现像 Facebook 使用的小聊天功能 我使用了 Html PHP JQuery 和 Apache 我之前用 JMS 做了一些例子 但我不知道如何用 PHP 向 JMS 服务器发送消息 对于 JMS 我使用 Web
  • 将 BigInteger 二进制转换为 BigInteger 数字

    目前我正在使用Long整数类型 我使用以下命令来转换二进制 数字 Convert ToInt64 BinaryString 2 Convert binary string of base 2 to number Convert ToStri
  • java.util.Date 和 java.time.Instant 之间转换古代日期时出现差异

    我有使用 java util Date 创建古代日期 0002 年 11 月 30 日 的遗留代码 我正在尝试更新我可以更新的代码 但这需要在 Date 和 LocalDate 等之间进行转换 我无法完全摆脱使用 Date 或古老的日期选择
  • Spring Integration / JSch:身份验证失败

    我正在尝试使用 Spring Integration 的 SFTP 入站通道适配器 但我被困在这里 20 29 30 458 INFO com jcraft jsch task scheduler 6 Connecting to deplo
  • 在基于 Flask 的应用程序中获取客户端 IP

    我在服务器中部署了 Flask 应用程序 我们正在使用 Nginx nginx 设置如下 proxy set header X Forward For proxy add x forwarded for proxy set header H
  • 在 Windows x86-64 下,发生异常时,有多少内容被推送到 32 位堆栈上?

    In this 这个问题 我给出了一些我已经实现的并行语言的背景知识 编译器生成本机 x86 32 代码 一个关键的实现决策是为每个函数 调用 从堆中分配堆栈空间 这允许递归直到你用完虚拟机 并为词法范围启用仙人掌堆栈 甚至对于嵌套的并行子
  • 使用 Jenkins 管道脚本从 Windows 到 Linux 的 SCP

    我想要做SCP从 Windows Jenkins 节点到 Linux 服务器 在此设置中 Windows 计算机是 Jenkins 从机 我要复制的目标服务器是 Linux 下面是我的 Jenkins 管道脚本 在运行下面的脚本之前 我将克
  • 无法将 dbt cloud 或 dbt core 连接到 databricks

    我在将 dbt cloud 和 dbt core 连接到 databricks 时遇到问题 我已阅读这 4 个链接 但仍然无法连接 https docs databricks com integrations prep dbt html h
  • GridView无法显示图像

    我获取所有应用程序的图标 并在 GridView 中显示图标 GridView 很好地显示了它们 但是当我非常快地向下滑动 GridView 时 有时 GridView 缺少两个图标 这种情况不常出现 您能给我一些建议吗 EDIT 这个问题
  • Google c# Api,从 v2.3 更改为 v3

    我有以下代码使用 C v2 3 api 查询谷歌分析 string username email protected string pass PASS string gkey key XXXXXXXXXXXXXXXXXXXXXXXXXXX
  • SkiaSharp Tiff 支持

    目前 SkiaSharp 不支持 tiff 图像 它支持 jpg gif bmp png 和其他一些格式 如何将 tiff 图像转换为 SKBitmap 对象 一个想法 也许有一种有效的方法来转换 tiff 流 gt png 流 gt SK
  • Descendants 在 Word 文档中获取零个元素

    我在更新 Word 文档中的超链接时遇到问题 Q如何更新 Word 文档中的正文和超链接 并放大Descendants