我有一个XML文件,用户可以更改它并将某些不同的文本添加到某些属性,然后上传到我的工具。问题在于它们有时在属性的值中包含<
和>
。我想将其更改为<
和>
。
例如:
<title value="Tuition and fees paid with (Percent<5000) by Gender" />
使用以下代码加载此错误会导致错误:
XmlDocument smldoc = new XmlDocument();
xmldoc.LoadXml(xmlString);
我遇到的问题是,我需要可以由用户生成的所有属性都位于<
和>
的html实体中。问题是我不能只做.Replace("<", "<")
,因为实际的XML文件需要这些。
这如何轻松完成?代码是C#.Net。
答案 0 :(得分:1)
为什么首先要允许用户向您发送无效的XML?您应拒绝此类输入。用户是否没有更合适的格式来发送此数据?像“键:值”字符串列表一样?
无论如何,您都可以通过replace方法解决此问题,只需确保在第一个<
和>
之后开始,然后再停止。
类似这样的东西:
var trimmedXml = xmlString.Trim(); // to remove whitespace at either end
var innerText = trimmedXml.Substring(1, trimmedXml.Length -1);
innerText = innerText.Replace("<", "<").Replace(">", ">");
xmlString = trimmedXml[0] + innerText + trimmedXml[trimmedXml.Length -1];
当然,您需要验证“ XML”字符串至少包含</>
。