使用 LINQ to XML 将 HTML 标记保留在 XML 中

2024-04-16

我有一个 xml 文件,我使用 LINQ to XML 从中提取 html。这是该文件的示例:

<?xml version="1.0" encoding="utf-8" ?>
<tips>
    <tip id="0">
    This is the first tip.
</tip>
<tip id="1">
    Use <b>Windows Live Writer</b> or <b>Microsoft Word 2007</b> to create and publish content.
</tip>
<tip id="2">
    Enter a <b>url</b> into the box to automatically screenshot and index useful webpages.
</tip>
<tip id="3">
    Invite your <b>colleagues</b> to the site by entering their email addresses.  You can then share the content with them!
</tip>
</tips>

我使用以下查询从文件中提取“提示”:

Tip tip = (from t in tipsXml.Descendants("tip")
                   where t.Attribute("id").Value == nextTipId.ToString()
                   select new Tip()
                   {
                     TipText= t.Value,
                     TipId = nextTipId
                   }).First();

我遇到的问题是 Html 元素被删除。我希望使用像 InnerHtml 这样的东西来代替 Value,但这似乎不存在。

有任何想法吗?

预先感谢大家,

Dave


Call t.ToString()代替Value。这将以字符串形式返回 XML。您可能需要使用 SaveOptions 的重载来禁用格式。我现在无法检查,但我怀疑它会包含元素标签(和元素),因此您需要将其删除。

请注意,如果您的 HTML 不是有效的 XML,您最终会得到一个无效的整体 XML 文件。

XML 文件的格式是否完全超出您的控制范围?如果内部的任何 HTML 都采用 XML 编码,那就更好了。

编辑:避免获取外部部分的一种方法可能是执行类似的操作(当然,在从查询调用的单独方法中):

StringBuilder builder = new StringBuilder();
foreach (XNode node in element.Nodes())
{
    builder.Append(node.ToString());
}

这样您将获得 HTML 元素及其后代和散布的文本节点。我强烈怀疑它基本上相当于 InnerXml。

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

使用 LINQ to XML 将 HTML 标记保留在 XML 中 的相关文章

随机推荐

  • 按多个单词的主题标签拆分术语

    我正在尝试拆分包含多个单词的主题标签的术语 例如 I am great 或 awesome dayofmylife 那么我正在寻找的输出是 I am great awesome day of my life 我所能实现的就是 gt gt g
  • 如何使用java访问SVN中的文件

    我需要你的帮助 我想使用 java 代码从 SVN 打开一个文件 任何人都可以告诉我访问文件的流程 或者任何人都可以向我发送该文件的示例代码 任何人都可以向我发送使用java通过HTML访问svn的示例代码吗 你需要看看SVNKIT Jav
  • CancellationToken 不会在 Azure Functions 中触发

    我有这个简单的 Azure 函数 public static class MyCounter public static int timerRound 0 public static bool isFirst true FunctionNa
  • 如何将我的 app.yaml 迁移到 2.7?

    我正在将我的 gae 应用程序迁移到 python 2 7 这是我的新 app yaml application webfaze version main runtime python27 api version 1 threadsafe
  • 如何修复 ReactforwardRef(Menu) Material UI?

    我创建了非常简单的自定义组件MuiMenu and MuiMenuItem 但是当我尝试显示这些组件时 我看到一个错误 如下所示 Function components cannot be given refs Attempts to ac
  • 如何对歌曲中的专辑进行排序?

    所以我的问题是 当我尝试对专辑进行排序时 专辑标题和专辑艺术是错误的 我尝试对专辑 ID 进行排序 但这并不能解决问题 因为专辑 ID 显然与对艺术进行排序无关 当我忽略排序时 一切都是正确的 但是当我尝试对它们进行排序时 专辑名称与专辑封
  • 更改表的列名后,所有单元和功能测试均出错

    我重命名了表的 3 列 突然我的所有单元和功能测试都抛出了相同的错误 即它们找不到具有旧列名称的表 即使对与我修改的表无关的模型的测试也会抛出相同的错误 Example 54 Error test should show user User
  • 即时编译与提前编译相比有何优点?

    我最近一直在思考这个问题 在我看来 最大的优势是JIT编译或多或少应该归因于中间格式 而抖动本身并不是生成代码的好方法 那么主要就是这些pro JIT我经常听到的编译参数 即时编译可实现更大的可移植性 这不是中间格式的原因吗 我的意思是 一
  • 使用 CSS/jQuery 的响应式字体大小

    我想在 div 内创建响应文本 I tried jquery 文本填充 https github com jquery textfill jquery textfill and FlowType http simplefocus com f
  • 有没有办法检测手机和手持设备上的3G和2G连接速度?

    有没有办法检测手机和手持设备上的 3G 和 2G 连接 就像如果我想在用户使用 3G 时提供高端网站 如果用户使用 2G 则提供高度优化的版本 在 Android 2 2 中 有一个 JS 对象可以实现这一点 您可以根据连接类型编写一个供
  • 如何在 PHP 中将字符串的第一个字符变为小写?

    我无法使用斯特洛尔 https www php net manual en function strtoupper php因为它会影响所有角色 我应该使用某种正则表达式吗 我收到一个字符串 它是产品代码 我想在不同的地方使用此产品代码作为搜
  • 寻找最接近的斐波那契数列

    我正在尝试解决一个更大的问题 并且我认为该程序的重 要部分花费在低效的计算上 我需要计算给定数字 N 的区间 P Q 其中 P 是 到 N 的最小斐波那契数 目前 我正在使用地图来记录斐波那契数的值 查询通常涉及搜索最多 N 的所有斐波那契
  • 使用按钮更新 Matplotlib 中的注释

    我正在修改 Matplotlib 文档中的按钮示例 以在图中添加文本注释 我的问题是 我无法找到每次按下按钮时更新注释的正确方法 因为注释重叠 我尝试了remove 方法 但不起作用 import numpy as np import ma
  • 使用 Core Reporting Google API v4 (Java) 显示超过 10000 行

    我正在使用以下方式获取 Google Analytics 数据核心报告 API v4 https developers google com analytics devguides reporting core v4 对于给定的维度和指标组
  • 数据访问库返回数据集或对象

    在使用调用存储过程的库时是否存在普遍共识 返回数据集或使用 sqldatareader 填充自定义对象 数据传输对象的序列化成本是否低于数据集 就我个人而言 我将 SqlDataAdapter 与 DataTables 一起使用 数据表有W
  • 如何原子地否定 std::atomic_bool?

    朴素的布尔否定 std atomic bool b b b 似乎不是原子的 我怀疑这是因为operator 触发转换为普通bool 如何原子地执行等效的否定 下面的代码说明了朴素的否定不是原子的 include
  • openh264 - bEnableFrameSkip=0,比特率无法控制

    关于 opencv H 264 有很多问题 但是 他们都没有给出详细的解释 我在 Visual Studio 中使用 openh264 openh264 1 4 0 win32msvc dll 以及 opencv 3 1 使用启用 ffmp
  • Shiny:如何检测选择了哪些手风琴元素?

    我有一个 R Shiny 在那里server R输出大量动态生成的UI对象 而不是处理数百个对象input来处理 我想我可以使用bs accordion https ijlyttle github io bsplus articles ov
  • 如何使用 kotlin 通过 TCP 连接发送和接收字符串

    我在 Windows 上有一个 TCP 服务器 我想在服务器和我的 Android 设备之间发送和接收文本字符串 我花了很多时间搜索使用 Kotlin 的示例 但没有找到任何有用的代码 所以我现在只能创建套接字并连接 fun connect
  • 使用 LINQ to XML 将 HTML 标记保留在 XML 中

    我有一个 xml 文件 我使用 LINQ to XML 从中提取 html 这是该文件的示例