public static XmlDocument CleanupXmlForDeserialization(XmlDocument inDoc)
{
if (inDoc == null)
{
return inDoc;
}
//<compare-at-price type="decimal" nil="true"> </compare-at-price>
const string nilDecimal =
@"\<[^\>]+ type\=\""(decimal|datetime|integer){1}\"" nil\=\""true\""[^\>]*\>[^\<\>]*\<\/[^\>]+\>";
var sw = new StringWriter();
var xw = new XmlTextWriter(sw);
inDoc.WriteTo(xw);
string xmlString = sw.ToString();
xmlString = Regex.Replace(xmlString, nilDecimal, string.Empty);
var returnDoc = new XmlDocument();
try
{
if (xmlString != string.Empty)
{
returnDoc.LoadXml(xmlString);
}
return returnDoc;
}
catch (XmlException e)
{
Logger.ErrorFormat(
"ShopifyCommunicator()::CleanupXmlForDeserialization(): Cleanup invalidated XML. Final string was {0} . Exception is ({1}) ",
xmlString, e.Message);
return null;
}
}