使用特殊字符解析XML(SQL / CLR)

时间:2015-04-27 17:25:07

标签: c# sql-server xml clr

我已经查看了使用特殊Chars将XML解析为SQL的大部分内容,并且找不到任何与XML输出本身无法控制的相关内容。 我知道这样做的方法是确保所有特殊字符都被转义,我遇到的问题是我无法控制直到事后才生成的XML。我可能有的输出可能是如下所示。我需要找到一种方法来替换其中的所有特殊字符而不触及对xml有效的字符。这可以使用CLR或直接SQL来完成,我甚至会考虑其他选项。

<?xml version="1.0" ?>
<A>
<B>this is my test <myemail@gmail.com</B>
<B>>>>this is another test<<<</B>
</A>

2 个答案:

答案 0 :(得分:0)

您可能正在寻找与内容的HtmlEncode()类似的内容。循环遍历XML结构并在写入数据库之前对所需的字段进行编码,并对数据库中的读取执行HtmlDecode()。

https://msdn.microsoft.com/en-us/library/w3te6wfz%28v=vs.110%29.aspx

答案 1 :(得分:0)

如果您确定XML元素名称有效,那么解决方案可以使用正则表达式将XML解析为文本并替换&amp;使用&amp;和&gt;与&gt;和&lt;与&lt;。 例如,请查看此处regular expression to find special character & between xml tags