使用 HTMLAgilityPack 进行 XHTML 解析

2023-12-05

我在使用 HTMLAgilityPack 找到的元素内有以下元素的列表。

<option value="67"><span style="color: #cc0000;">Horde</span> Leveling / Dailies & Event Guide ($50.00)</option>

我需要做的是解析标签中的所有文本,而不包含其中的所有胡言乱语。我已经尝试了(似乎!)一切,但它总是看起来像这样:

Horde
升级/每日任务和活动指南 ($50.00)

有时喜欢:

Horde
调平
/ 每日任务和活动指南 ($50.00)

以及其他一些类似的变体。我什至将字符串中的每个字符作为一个字节打印出来,但我没有找到任何换行符或提要,只有我所期望的,正常的字母和空格。这是直接从页面复制的 html 完整源代码供参考。

<option value="13"><span style="color: #0000ff;">Alliance</span> Leveling Guide ($30.00)</option>


<option value="12"><span style="color: #cc0000;">Horde</span> Leveling Guide ($30.00)</option>

<option value="46"><span style="color: #cc0000;">Horde</span> Dailies & Events Guide ($25.00)</option>

<option value="67"><span style="color: #cc0000;">Horde</span> Leveling / Dailies & Event Guide ($50.00)</option>


<option value="11"><span style="color: #0000ff;">Alliance</span> &amp; <span style="color: #cc0000;">Horde</span> Leveling Guide ($50.00)</option>

<option value="97"><span style="color: #0000ff;">Alliance</span> Achievements & Professions Guide ($20.00)</option>

<option value="98"><span style="color: #cc0000;">Horde</span> Achievements & Professions Guide ($20.00)</option>


<option value="99"><span style="color: #0000ff;">Alliance</span> &amp; <span style="color: #cc0000;">Horde</span> Achievements & Professions Guide ($30.00)</option>

默认情况下,<OPTION>标签被 Html Agility Pack 视为“空”,这意味着它不需要结束</OPTION>,这就是为什么在这种情况下,用 XPATH 捕获并不容易。您可以使用 HtmlNode.ElementFlags 集合更改此设置。

这是应该执行您想要的操作的代码:

HtmlDocument doc = new HtmlDocument();
HtmlNode.ElementsFlags.Remove("option");
doc.LoadHtml(yourHtml);
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//option"))
{
    Console.WriteLine(node.InnerText);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 HTMLAgilityPack 进行 XHTML 解析 的相关文章

  • 用 C++ 进行服装建模 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在编写一些软件 最终会绘制一个人体框架 可以配置各种参数 并且计划是在假人身上放置某种衣服 我研究
  • 使用 Unity 在构造函数中使用属性依赖注入

    好的 我在基类中定义了一个依赖属性 我尝试在其派生类的构造函数内部使用它 但这不起作用 该属性显示为 null Unity 在使用 container Resolve 解析实例后解析依赖属性 我的另一种选择是将 IUnityContaine
  • 为 Visual Studio 2013 编译 Tesseract

    我正在尝试使用tesseract在 Visual Studio 2013 中 我在链接器 gt 输入 不是 libtesseract302 static lib 中使用 libtesseract302 lib 一切都正常 并且已编译并运行
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • 如何从 .resx 文件条目获取注释

    资源文件中的字符串有名称 值和注释 The ResXResourceReader类让我可以访问名称和值 有办法看评论吗 你应该能够得到Comment via ResXDataNode class http msdn microsoft co
  • 存储来自其他程序的事件

    我想将其他应用程序的事件存储在我自己的应用程序中 事件示例 打开 最小化 Word 或打开文件时 这样的事可能吗 运行程序 http msdn microsoft com en us library ms813609 aspx and 打开
  • 使用 C 语言使用 strftime() 获取缩写时区

    我看过this https stackoverflow com questions 34408909 how to get abbreviated timezone and this https stackoverflow com ques
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • Visual Studio 中的测试单独成功,但一组失败

    当我在 Visual Studio 中单独运行测试时 它们都顺利通过 然而 当我同时运行所有这些时 有些通过 有些失败 我尝试在每个测试方法之间暂停 1 秒 但没有成功 有任何想法吗 在此先感谢您的帮助 你们可能有一些共享数据 检查正在使用
  • 私有模板函数

    我有一堂课 C h class C private template
  • std::async 与重载函数

    可能的重复 std bind 重载解析 https stackoverflow com questions 4159487 stdbind overload resolution 考虑以下 C 示例 class A public int f
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • 用于 C# 的 TripleDES IV?

    所以当我说这样的话 TripleDES tripledes TripleDES Create Rfc2898DeriveBytes pdb new Rfc2898DeriveBytes password plain tripledes Ke
  • 如何在 C# 中调整图像大小同时保持高质量?

    我从这里找到了一篇关于图像处理的文章 http www switchonthecode com tutorials csharp tutorial image editing saving cropping and resizing htt
  • 线程和 fork()。我该如何处理呢? [复制]

    这个问题在这里已经有答案了 可能的重复 多线程程序中的fork https stackoverflow com questions 1235516 fork in multi threaded program 如果我有一个使用 fork 的
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • 在新安装的 MySQL 上使用以前的 MySQL 数据文件夹

    如果我能做出适当的SQL dump backup我本来会的 但是OS已过期 只能登录SafeMode 我无法启动的地方MySQL server 因此 我只能手动备份文件目录 我有 C ProgramData MySQL MySQL Serv
  • 在 .NET 中,对于 128 位数字,我应该使用什么类型?

    我需要做一些大整数数学运算 是否有任何类或结构可以表示 128 位整数并实现所有常用运算符 顺便说一句 我意识到decimal可以用来表示 96 位 int While BigInteger是大多数应用程序的最佳解决方案 如果您有性能关键的
  • 事件未到达 kurento java 服务器

    我是 Kurento 媒体服务器的新手 我正在尝试将事件从 kurento 媒体服务器发送到我拥有的 java 应用程序 我使用以下步骤创建了一个事件 编辑了interfacejson 文件 events properties name T
  • 约束线性回归/二次规划 python

    我有一个这样的数据集 import numpy as np a np array 1 2 2 3 4 2 b np array 1 5 6 c np array 5 4 6 2 1 9 m np vstack a b c y np arra
  • $(document).ready(function () $ 未定义[重复]

    这个问题在这里已经有答案了 我正在开发 asp net mvc 并使用 Kendo UI 网格控件进行数据检索 将这些功能用于另一个应用程序 但问题不在代码中 所有 JavaScript 和 Kendo grid ui 参考 包括当我运行应
  • “instanceof List”和“o instanceof List”之间的区别

    我认为以下内容没有任何区别 Object o new LinkedList
  • 如果 HTML 文本太大,则添加省略号 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 如果字符串太大 有没有办法在字符串中添加省略号 三个点 例如 From This is a very large sentence To This is a ve 可以使用 PHP
  • 如何使用 Java JDBC 从数据库获取所有触发器名称?

    我想从 Oracle 数据库模式中检索所有触发器名称 我使用 getFunctions 检索所有函数 但找不到另一个触发器 DatabaseMetaData dbmd ResultSet result dbmd getFunctions n
  • 错误:Visual Studio 中未加载 opencv_world310.dll 的符号

    我正在 Visual Studio 2015 中使用 OpenCV 3 1 0 编写程序 大多数操作工作正常 但是 我收到访问冲突错误 我已经调试了该项目 执行faceClassifier load haarcascade frontalf
  • 如何检查数组中每个项目的第一个字母?

    我正在构建一个猪拉丁语翻译器 但我不知道如何识别输入单词的第一个字母 我已将输入转换为数组 其中每个项目都是一个新单词 但是如何选择每个项目的每个第一个字母来确定它是否是辅音 元音 等 a This is a sentence for wo
  • 为什么结构体字段显示为空?

    我正在努力从以下代码中获得正确的输出 package main import encoding json fmt func main var jsonBlob3 byte name Platypus spec Monotremata id
  • android 所有动态生成按钮的点击事件

    我编写代码来生成动态按钮 但我不知道如何动态实现每个按钮的单击事件 我找到了一些答案 但无法使用我的代码 请帮助我 这是我的代码 public class dynamicbuttion extends Activity Override p
  • 如何按需挂起 Java 线程?

    我正在用java开发一个多线程游戏 我有几个工作线程从中央线程管理器获取模块 然后自行执行 现在 如果它暂时没有什么可执行的 我希望能够暂停这样的线程 我尝试从线程管理器调用 wait 方法 但这只会导致它忽略后面的 notificatio
  • 带边框和透明间隙的 CSS 三角形切口

    我需要使用 CSS 绘制以下图案作为页面各部分之间的分隔符 使用skewX 技术来自这个答案 我能够准确地模仿三角形切口 两个伪元素附加到下部部分的顶部 一个向左倾斜 一个向右倾斜 以便上部部分的背景显示出来 但我不知道如何添加边框 如第一
  • SQL 一对多

    我正在尝试为我们拥有的系统构建一个 SQL 模式channels 每个都有一个id 以及一个或多个fixtures 我很难找到实现这种一对多映射的方法 即一channel太多fixtures 我正在使用H2数据库引擎 我不能有桌子 id f
  • Excel 数据验证列表,其中排除已使用的值

    我有 A 列 其中有一些数据 B 列有一个数据验证列表下拉列表 其中包含 A 列中的值 当我从 B 列中的列表中选择值 例如 B1 A B2 B B3 C 时 我希望下拉列表排除该列中已使用的值 因此 在屏幕截图中 B4 中的下拉列表应该只
  • 为什么 iPhone 视频是颠倒的?

    我有一个使用标准相机应用程序捕获的视频文件 并使用它从我的 Iphone 5 复制btsync orig mov ISO Media Apple QuickTime movie 那个播放倒挂在 mplayer 或 vlc 中 当我使用 AW
  • 从 M 文件控制 simulink

    我正在尝试从 M 文件控制 simulink 我想要在 M 文件中做的是给 simulink 模型一些输入 运行 simulink 模型 在 0 6 秒时更改一个输入值 然后使用新输入继续运行 simulink 模型 我已经知道通过使用se
  • Xamarin 表单:如何在设备外部存储中创建文件夹和文件?

    我正在尝试在设备的外部存储上的该文件夹中创建一个文件夹和一个文本文件 与 WhatsApp 的做法相同 另外 我需要向该文件写入一些数据 是否可以以 xamarin 形式执行此操作 或者我们应该使用依赖服务吗 提前致谢 UPDATE Luc
  • 使用 HTMLAgilityPack 进行 XHTML 解析

    我在使用 HTMLAgilityPack 找到的元素内有以下元素的列表