AIMS_BD_IATI.Library.Parser.ParserIATIv1.ParserIATIv1.ParseIATIXML C# (CSharp) Method

ParseIATIXML() public method

Implements ParseXML
public ParseIATIXML ( string url ) : IXmlResult
url string
return IXmlResult
        public IXmlResult ParseIATIXML(string url)
        {
            IXmlResult xmlResult;

            var serializer = new XmlSerializer(typeof(XmlResultv1), new XmlRootAttribute("result"));

            // Create an XmlNamespaceManager to resolve namespaces.
            NameTable nameTable = new NameTable();
            XmlNamespaceManager nsmgr = new XmlNamespaceManager(nameTable);
            nsmgr.AddNamespace("iati-extra", "");

            // Create an XmlParserContext.  The XmlParserContext contains all the information
            // required to parse the XML fragment, including the entity information and the
            // XmlNamespaceManager to use for namespace resolution.
            XmlParserContext xmlParserContext = new XmlParserContext(nameTable, nsmgr, null, XmlSpace.None);

            // Create the reader.
            XmlReaderSettings xmlReaderSettings = new XmlReaderSettings();
            xmlReaderSettings.NameTable = nameTable;

            using (var Reader = XmlReader.Create(url, xmlReaderSettings, xmlParserContext))
            {
                xmlResult = (XmlResultv1)serializer.Deserialize(Reader);
            }

            return xmlResult;
        }
    }

Usage Example

Example #1
0
        public XmlResultv2 ConvertIATI(string org, string country)
        {
            string activitiesURL;
            IParserIATI parserIATI;
            XmlResultv2 returnResult2 = null;
            XmlResultv1 returnResult1 = null;

            try
            {
                activitiesURL = "http://datastore.iatistandard.org/api/1/access/activity.xml?recipient-country=" + country + "&reporting-org=" + org + "&stream=True";
                //Parser v2.01
                parserIATI = new ParserIATIv2();

                returnResult2 = (XmlResultv2)parserIATI.ParseIATIXML(activitiesURL);

                var iatiactivityArray = returnResult2?.iatiactivities?.iatiactivity;
                if (iatiactivityArray != null && iatiactivityArray.n()[0].AnyAttr.n()[0].Value.StartsWith("1.0"))
                {
                    //Parser v1.05
                    parserIATI = new ParserIATIv1();
                    returnResult1 = (XmlResultv1)parserIATI.ParseIATIXML(activitiesURL);

                    //Conversion
                    ConvertIATIv2 convertIATIv2 = new ConvertIATIv2();
                    returnResult2 = convertIATIv2.ConvertIATI105to201XML(returnResult1, returnResult2);
                }
            }
            catch (Exception ex)
            {
                returnResult2.n().Value = ex.Message;
            }

            return returnResult2;
            //return Newtonsoft.Json.JsonConvert.SerializeObject(returnResult2);
        }
All Usage Examples Of AIMS_BD_IATI.Library.Parser.ParserIATIv1.ParserIATIv1::ParseIATIXML