【发布时间】:2020-01-04 01:21:53
【问题描述】:
我有一个 XML 文件,用户可以更改该文件并将一些不同的文本添加到某些属性,然后上传到我的工具。问题是它们有时在属性值中包含< 和>。我想把它改成<和>。
例如:
<title value="Tuition and fees paid with (Percent<5000) by Gender" />
使用以下代码加载它会导致错误:
XmlDocument smldoc = new XmlDocument();
xmldoc.LoadXml(xmlString);
我遇到的问题是我需要用户生成的所有属性都位于&lt; 和&gt; 的html 实体中。问题是我不能只做一个.Replace("<", "&lt;"),因为实际的 XML 文件需要这些。
这如何轻松完成?代码是 C#.Net。
【问题讨论】:
-
这不是有效的 XML,您可以验证用户输入并让用户知道它无效,但解析器无能为力。
-
您不应允许用户编辑 XML(除非他们也是开发人员)。提供用于编辑内容的工具,这样他们就不会触及 XML 结构。
.xlsx文档是压缩的 XML 文件,但 Microsoft 不希望用户直接编辑 XML 来更改单元格内容。 -
stackoverflow.com/questions/44765194/… 重复涵盖了您问题的“已读”部分(最初是 Java,但涵盖的策略是通用的,还包括一些特定于 .NET 的内容)。正如@madreflection 指出的那样,让用户编辑 XML 通常是个坏主意(我知道也许有几个人每次都能正确地手动编码......但其他没有直接或间接参与 XML W3C 委员会的人经常犯错误足够的)。如果您必须进行纯文本编辑,请使用单独的文件...
标签: c# asp.net .net xml c#-4.0