private XDoc CreateExportDocumentFromList(string listPath) { if (!File.Exists(listPath)) { throw new ConfigurationException("No such export list: {0}", listPath); } XDoc exportDoc = new XDoc("export"); foreach (string line in File.ReadAllLines(listPath)) { if (string.IsNullOrEmpty(line)) { continue; } if (line.StartsWith("#")) { exportDoc.Comment(line.Remove(0, 1)); continue; } try { bool exportRecursive = _exportRecursive; string path = line.Trim(); if (path.EndsWith(" +")) { exportRecursive = true; path = path.Substring(0, path.Length - 2).TrimEnd(); } else if (path.EndsWith(" -")) { exportRecursive = false; path = path.Substring(0, path.Length - 2).TrimEnd(); } if (!line.StartsWith("/")) { XUri uri = new XUri(path); path = uri.Path; if ("/index.php".EqualsInvariantIgnoreCase(path)) { path = uri.GetParam("title"); } } exportDoc.Start("page") .Attr("path", Title.FromUIUri(null, path).AsPrefixedDbPath()) .Attr("recursive", exportRecursive) .End(); } catch (Exception) { throw new ConfigurationException("Unable to parse uri: {0}", line.Trim()); } } return(exportDoc); }
private XDoc CreateExportDocumentFromList(string listPath) { if(!File.Exists(listPath)) { throw new ConfigurationException("No such export list: {0}", listPath); } XDoc exportDoc = new XDoc("export"); foreach(string line in File.ReadAllLines(listPath)) { if(string.IsNullOrEmpty(line)) { continue; } if(line.StartsWith("#")) { exportDoc.Comment(line.Remove(0, 1)); continue; } try { string path = line.Trim(); if(!line.StartsWith("/")) { XUri uri = new XUri(path); path = uri.Path; if(StringUtil.EqualsInvariantIgnoreCase("/index.php", path)) { path = uri.GetParam("title"); } } exportDoc.Start("page") .Attr("path", Title.FromUIUri(null, path).AsPrefixedDbPath()) .Attr("recursive", _exportRecursive) .End(); } catch(Exception) { throw new ConfigurationException("Unable to parse uri: {0}", line.Trim()); } } return exportDoc; }