public static XmlNodeList SelectNodesEx(this XElement node, string nodeName) { #if UNITY_WP8 return(node.Elements(nodeName)); #else return(node.SelectNodes(nodeName)); #endif }
private static void ElementQuery(XmlNode node, List<XmlElement> results, Func<XmlElement, bool> predicate) { foreach (var elem in node.Elements()) { if (predicate.Invoke(elem)) results.Add(elem); ElementQuery(elem, results, predicate); } }
private static void ElementRecursion(XmlNode node, Action<XmlElement> action) { foreach (var elem in node.Elements()) { action.Invoke(elem); ElementRecursion(elem, action); } }
/// <summary> /// Execute the query to get all the relevant data from the database regarding the items to export. /// </summary> private XmlDocument ExecuteExportQuery(XmlNode query) { var result = new XmlDocument(); result.AppendChild(result.CreateElement("Result")); IEnumerable<XmlElement> resultItems; var queryItems = query.Elements("Item").ToList(); var i = 0; ReportProgress(4, string.Format("Searching for data ({0} of {1})", i, queryItems.Count)); foreach (var item in queryItems) { resultItems = _conn.GetItems("ApplyItem", item); foreach (var resultItem in resultItems) { result.DocumentElement.AppendChild(result.ImportNode(resultItem, true)); } i++; ReportProgress(4 + (int)(i * 90.0 / queryItems.Count), string.Format("Searching for data ({0} of {1})", i, queryItems.Count)); } return result; }