/// <summary>
        ///  Recupera l'XElement radice della xmlBag passata, se non è di tipo XElement ne crea una nuova a partire dalla stringa Xml della xmlBag
        /// </summary>
        /// <param name="xmlBag">xmlBag sulla quale recuperare l'XElement radice</param>
        /// <returns>XElement corrispondente</returns>
        public static XElement GetXElement(IXmlBag xmlBag)
        {
            if (xmlBag == null)
            {
                throw new ArgumentNullException(nameof(xmlBag));
            }

            if (xmlBag.GetType() == typeof(XElementBag))
            {
                return(((XElementBag)xmlBag).RootElement);
            }

            var newBag = new XElementBag(xmlBag.GetRawXml());

            return(newBag.RootElement);
        }
        /// <summary>
        /// Recupera l'XPathNavigator radice della xmlBag passata, se non è di tipo XPathNavigator ne crea una nuova a partire dalla stringa Xml della xmlBag
        /// </summary>
        /// <param name="xmlBag">xmlBag sulla quale recuperare il Navigator radice</param>
        /// <returns>XPathNavigator corrispondente</returns>
        public static XPathNavigator GetNavigator(IXmlBag xmlBag)
        {
            if (xmlBag == null)
            {
                throw new ArgumentNullException(nameof(xmlBag));
            }

            if (xmlBag.GetType() == typeof(XPathNavigatorBag))
            {
                return(((XPathNavigatorBag)xmlBag).Navigator);
            }

            var newBag = new XPathNavigatorBag(xmlBag.GetRawXml(), false);

            return(newBag.Navigator);
        }
Пример #3
0
 /// <summary>
 /// Costruisce un'xml bag che valuta gli xPath a seconda della strategia impostata
 /// </summary>
 /// <param name="xmlString">Xml da valutare</param>
 /// <param name="navigationStrategy">Strategia, default:XElementNavigator</param>
 public XmlBag(string xmlString, NavigationStrategy navigationStrategy = NavigationStrategy.XElementNavigator)
 {
     _currentXmlBag = XmlBagFactory.Create(xmlString, navigationStrategy);
 }