Xml非法字符过滤

本文关键字:过滤 字符 非法 Xml | 更新日期: 2023-09-27 17:53:40

我用的是c#。
我有以下xml文件:

<MyXml>
    <Element>&lt;x&gt; y&lt;/p&gt<Element>
    <Element>&amp;quot;my qoute&amp;quot;<Element>
</MyXml>

如何"过滤"所有非法字符?(& lt;>,"等. .)
我需要像下面这样写我自己的代码:

myElement.InnerText.Replace("&lt","<");

还是我有别的方法?

谢谢!

Xml非法字符过滤

应该做的是修复生成此XML的任何内容,因为它错误地将'转义' XML作为文本插入Element元素而不是添加子节点。

如果不能这样做,那么一个可能的解决方法是识别那些应该包含XML的元素,解析内容并将结果元素作为子元素添加:

var doc = XDocument.Parse(xml);
foreach (var element in doc.Descendants("Element"))
{
    var content = XElement.Parse("<root>" + element.Value + "</root>");
    element.ReplaceNodes(content.Nodes());
}

XmlElement。为您转义了InnerText。在将字符串转义到XML

处回答了类似的问题