c# - 用 html 值替换 xml 标签

标签 c# xml html-parsing xmldocument linq-to-xml

我正在使用 c# .Net

我有一个问题,

我正在使用 XDocument.xDoc.Load(file) 加载 Xml 文件,但它失败了,因为在我的内容中我也有 xml 标签:

示例:<root><abc><deg></abc></root>

我的问题是 Load函数处理 <deg>作为没有匹配“</deg>”的 Xml 标记...

我的问题是,如何以最简单的方式将“deg”的“<”和“>”替换为匹配的“&lt;”“&gt;”?

注意我的文件很大而且我有很多标签...

谢谢!

最佳答案

您尝试做的事情很难用标准 .NET 库完成,除非您想进行大量困难的解析。如果您的未结束标签有任何押韵或理由,那将大有帮助。例如,是否有一个已知的未关闭标签列表?如果是这样,搜索和替换就不错了。

但是,如果它真的是开放式的,如果可以打开任何 标签,那么您需要使用类似HTML Tidy 的东西。 .这个的 .Net 包装器可以是 found here .有了这个解决方案,<deg>标记将转换为 <deg/> . HTML Tidy 包装器还可以修复导致 xml 格式错误的其他一些问题。

一旦您的文件包含格式正确的 xml,您就可以轻松地将其加载到 xml 对象中。然后,如果您在文档上还有其他工作要做,您至少能够看到它作为 xml。

关于c# - 用 html 值替换 xml 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2097998/

相关文章:

c# - 如何在 C# 上停止 foreach 循环

java - JSoup 在网页上看不到表格

c# - 在 .NET(非 MVC)中访问数据的最佳实践

java - 显示启动画面直到应用加载完成

Android布局复用

java - Jsoup Java HTML 解析器 : Executing Javascript events

java - 基于Java的类可读性解析器

c# - 通用方法解析

c# - Application Insights 从自定义数据源中清除数据

c# - 检测文件扩展名 c#