/// <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); }
/// <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); }