我从第三方收到一个xml字符串。 xml字符串包含无效字符,如&和'。我试图把它放在数据集(ASP.NET)中。它会引发错误。任何人都可以帮忙。
答案 0 :(得分:3)
告诉/要求第三方提供有效的XML。
互操作性标准在不遵守时并不重要。如果今天他们传递了无效字符,那么明天阻止他们传递不匹配节点的是什么?或根本没有标签?
如果没有标准,那么您可能需要编写无数种方案。
那就是说,你可以:
根据OP的评论,这是一个非常非常简单的可配置查找/替换示例。
public string PreProcessXml( string xml )
{
// this list could be read from a config file
List<Tuple<string, string>> replacements = new List<Tuple<string, string>>();
// Important: if there are VALID uses of an ampersand in your document,
// this may invalidate them! Perform a more elaborate check using a
// regex, or ensure that there are no valid entities already in the document.
replacements.Add( new Tuple<string, string>( "&", "&" ) );
replacements.Add( new Tuple<string, string>( "\"", """ ) );
replacements.Add( new Tuple<string, string>( "\'", "'" ) );
foreach( var replacement in replacements )
{
xml = xml .Replace( replacement.Item1, replacement.Item2 );
}
return xml;
}
答案 1 :(得分:1)