c# - 从 XML 字符串中删除非法字符

标签 c# xml

我有一个包含一些 XML 的字符串。例如:

<foo>
    <bar>this is < than this</bar>
</foo>

在将其加载到 XmlDocument 之前,我需要从中删除非法字符。

任何想法。

提前致谢

最佳答案

I have a string containing some Xml.

不,你不知道。您有一些格式不正确的类似 XML 的文本。一旦它们像那样粘在一起,就很难找到特殊字符。哦,您可以尝试寻找“<”或“>”,但它们仍然会出现。我的建议是后退一步,看看那个字符串是从哪里来的。更改该代码,使其处理特殊字符。

在没有任何其他选项的情况下,我可能会暂时忽略 XML 工具(因为当您尝试给它们提供字符串时它们会抛出)并进行某种打开/关闭的运行计数(奇数/即使是引号)在特殊字符上。例如,一旦遇到 <,就不允许再遇到一个,直到遇到 >。不幸的是,您不能在属性中使用 < 等,所以我不知道您将如何处理 <foo p1="a<a">但至少你可以修复 <foo>a<A</foo> . (假设他们永远不会在标签名称中放置 <,遇到第二个意味着您需要备份并转义第一个。) 一旦遇到 >,就不能再有另一个了。等等。我的同情。

关于c# - 从 XML 字符串中删除非法字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5409220/

相关文章:

c# - 如何从母版页访问页面控件?

xml - 使用带有命名空间的 XPath 选择 3 个元素,但按属性对其进行过滤(仅限 Firefox)

xml - 构建需要元素或属性但不能两者同时存在的 XML 模式

java - 无法让 setParameter 在 XSLT 转换器中工作

java - 使用 DOM 解析器对 XML 中的节点进行排序

c# - 1分钟倒计时

c# - MS Dynamics 365 - 生成自定义序列号,确保唯一性

c# - 如何使用 .NET v12 SDK 在 Azure Blob 存储中上传具有指定 ContentType 的 Blob?

c# - Controller 中带参数的构造函数 - MVC

java - 如何通过 XSLT 在 Java 中合并 2 个 XML 流