7
ago/09
0

Cómo escapear caracteres XML inválidos en C#?

como escapear caracteres inválidos en xml con c#La técnica más usual para escapear/desescapear caracterés inválidos, es utilizar el “reemplazo de strings” de los 5 caracteres problemáticos para XML ( < > & ‘ ” ).

Ahora bien, lo más facil es usar el siguiente método provisto en el framework .Net:

string SecurityElement.Escape(string s)

Por más información: http://msdn2.microsoft.com/en-us/library/system.security.securityelement.escape(VS.80).aspx

Aquí les dejo el código alternativo:

public string EscapeXml( string s )
{
  string xml = s;
 
  if ( !string.IsNullOrEmpty( xml ) )
  {
    xml = xml.Replace( "&", "&amp;" );
    xml = xml.Replace( "<", "&lt;" );
    xml = xml.Replace( ">;", "&gt;" );
    xml = xml.Replace( "\"", "&quot;" );
    xml = xml.Replace( "'", "&apos;" );
  }
 
  return xml;
}
public string UnescapeXml( string s )
{
  string unxml = s;
 
  if ( !string.IsNullOrEmpty( unxml ) )
  {
    unxml = unxml.Replace( "&apos;", "'" );
    unxml = unxml.Replace( "&quot;", "\"" );
    unxml = unxml.Replace( "&gt;", ">;" );
    unxml = unxml.Replace( "&lt;", "<;" );
    unxml = unxml.Replace( "&amp;", "&" );
  }
 
  return unxml;
}
Tagged as: , ,