Connectster.Shopify.ShopifyCommunicator.CleanupXmlForDeserialization C# (CSharp) Method

CleanupXmlForDeserialization() public static method

Remove tags w/ "nil=true" for "type=decimal" or "type=datetime". Do this because XMLSerializer crashes on these cases.
public static CleanupXmlForDeserialization ( XmlDocument inDoc ) : XmlDocument
inDoc System.Xml.XmlDocument The XmlDocument you want cleaned up for deserialization.
return System.Xml.XmlDocument
        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;
            }
            }