public int CompareTo(object obj) { int result; try { Scenic scenic = obj as Scenic; result = this.scenicName.CompareTo(scenic.scenicName); return(result); } catch (Exception e) { Console.WriteLine(e.Message.ToString()); throw new Exception(e.Message); } }
/// <summary> /// 数据整合 /// </summary> private static void accountData() { DirectoryInfo rootDir = new DirectoryInfo(@"../../" + "DataScraperWorks"); try { //遍历文件夹 foreach (DirectoryInfo subDir in rootDir.GetDirectories()) { //遍历文件 foreach (FileInfo file in subDir.GetFiles("*.*")) { Console.WriteLine("File: " + file.Directory + "//" + file.ToString()); //读取xml文件 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(file.Directory + "//" + file.ToString()); XmlNode scenicNode = xmlDoc.SelectSingleNode("scenic"); if (scenicNode == null) { scenicNode = xmlDoc.SelectSingleNode("extraction").SelectSingleNode("scenic"); } XmlNodeList items = scenicNode.ChildNodes; foreach (XmlNode item in items) { XmlNode scenicNameNode = item.SelectSingleNode("scenicname"); if (scenicNameNode == null) { scenicNameNode = item.SelectSingleNode("secnicname");//mafengwo111 蚂蜂窝数据结构错了 } string scenicName = scenicNameNode != null ? scenicNameNode.InnerText : "null"; if (scenicNameNode == null) { Console.WriteLine("Scenic: " + file.ToString()); } //Console.WriteLine("Scenic: " + scenicName); XmlNode scenicLngNode = item.SelectSingleNode("lng"); string scenicLng = scenicLngNode != null ? scenicLngNode.InnerText : "null"; //Console.WriteLine("ScenicLng: " + scenicLng); XmlNode scenicLatNode = item.SelectSingleNode("lat"); string scenicLat = scenicLatNode != null ? scenicLatNode.InnerText : "null"; //Console.WriteLine("ScenicLat: " + scenicLat); Scenic scenic = new Scenic(); scenic.scenicName = scenicName; scenic.scenicLng = scenicLng; scenic.scenicLat = scenicLat; scenic.comeFrom = subDir.ToString(); scenicList.Add(scenic); } } } //数据排序 scenicList.Sort(); //保存所有数据 saveXmlDoc(rootDir.FullName, "full_data.xml", scenicList); Console.WriteLine("Count: " + scenicList.Count.ToString()); } catch (Exception e) { Console.WriteLine("Error: " + e.ToString()); } }
public static void Run() { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(@"../../" + "DataScraperWorks/full_data_new.xml"); XmlNode scenicNode = xmlDoc.SelectSingleNode("scenic"); XmlNodeList items = scenicNode.ChildNodes; foreach (XmlNode item in items) { XmlNode scenicNameNode = item.SelectSingleNode("scenicname"); string scenicName = scenicNameNode != null ? scenicNameNode.InnerText : "null"; XmlNode scenicLngNode = item.SelectSingleNode("lng"); string scenicLng = scenicLngNode != null ? scenicLngNode.InnerText : "null"; XmlNode scenicLatNode = item.SelectSingleNode("lat"); string scenicLat = scenicLatNode != null ? scenicLatNode.InnerText : "null"; XmlNode scenicComeNode = item.SelectSingleNode("from"); string scenicComeFrom = scenicComeNode != null ? scenicComeNode.InnerText : "null"; Scenic scenic = new Scenic(); scenic.scenicName = scenicName; scenic.scenicLat = scenicLat; scenic.scenicLng = scenicLng; scenic.comeFrom = scenicComeFrom; scenicList.Add(scenic); } Console.WriteLine("scenicList: " + scenicList.Count); List <Scenic> tempScenicList = new List <Scenic>(); List <Scenic> tempSameList = new List <Scenic>(); foreach (Scenic tempScenic in scenicList) { int count = 0; foreach (Scenic scenic in scenicList) { if (tempScenic.scenicName == scenic.scenicName) { //Console.WriteLine("Scenic: " + tempScenic.scenicName); count++; } } if (count < 2) { tempScenicList.Add(tempScenic); } else { tempSameList.Add(tempScenic); } } tempScenicList.Sort(); Console.WriteLine("tempScenicList: " + tempScenicList.Count); saveXmlDoc(@"../../DataScraperWorks/", "final_data.xml", tempScenicList); saveXmlDoc(@"../../DataScraperWorks/", "finalSameList.xml", tempSameList); //XmlDocument xmlDoc = new XmlDocument(); //xmlDoc.Load(@"../../" + "DataScraperWorks/tempOtherSameList.xml"); //XmlNode scenicNode = xmlDoc.SelectSingleNode("scenic"); //XmlNodeList items = scenicNode.ChildNodes; //foreach (XmlNode item in items) //{ // XmlNode scenicNameNode = item.SelectSingleNode("scenicname"); // string scenicName = scenicNameNode != null ? scenicNameNode.InnerText : "null"; // XmlNode scenicLngNode = item.SelectSingleNode("lng"); // string scenicLng = scenicLngNode != null ? scenicLngNode.InnerText : "null"; // XmlNode scenicLatNode = item.SelectSingleNode("lat"); // string scenicLat = scenicLatNode != null ? scenicLatNode.InnerText : "null"; // XmlNode scenicComeNode = item.SelectSingleNode("from"); // string scenicComeFrom = scenicComeNode != null ? scenicComeNode.InnerText : "null"; // Scenic scenic = new Scenic(); // scenic.scenicName = scenicName; // scenic.scenicLat = scenicLat; // scenic.scenicLng = scenicLng; // scenic.comeFrom = scenicComeFrom; // scenicList.Add(scenic); //} //Console.WriteLine("scenicList: " + scenicList.Count); //List<Scenic> tempScenicList = new List<Scenic>(); //List<Scenic> tempSameList = new List<Scenic>(); //foreach (Scenic tempScenic in scenicList) //{ // if (tempScenic.comeFrom == "mianbao1") // { // tempScenicList.Add(tempScenic); // } // else // { // tempSameList.Add(tempScenic); // } //} //Console.WriteLine("tempScenicList: " + tempScenicList.Count); //saveXmlDoc(@"../../DataScraperWorks/", "tempMianBaoList.xml", tempScenicList); //saveXmlDoc(@"../../DataScraperWorks/", "tempNoMianBaoSameList.xml", tempSameList); //XmlDocument xmlDoc = new XmlDocument(); //xmlDoc.Load(@"../../" + "DataScraperWorks/tempNoMianBaoSameList.xml"); //XmlNode scenicNode = xmlDoc.SelectSingleNode("scenic"); //XmlNodeList items = scenicNode.ChildNodes; //foreach (XmlNode item in items) //{ // XmlNode scenicNameNode = item.SelectSingleNode("scenicname"); // string scenicName = scenicNameNode != null ? scenicNameNode.InnerText : "null"; // XmlNode scenicLngNode = item.SelectSingleNode("lng"); // string scenicLng = scenicLngNode != null ? scenicLngNode.InnerText : "null"; // XmlNode scenicLatNode = item.SelectSingleNode("lat"); // string scenicLat = scenicLatNode != null ? scenicLatNode.InnerText : "null"; // XmlNode scenicComeNode = item.SelectSingleNode("from"); // string scenicComeFrom = scenicComeNode != null ? scenicComeNode.InnerText : "null"; // Scenic scenic = new Scenic(); // scenic.scenicName = scenicName; // scenic.scenicLat = scenicLat; // scenic.scenicLng = scenicLng; // scenic.comeFrom = scenicComeFrom; // scenicList.Add(scenic); //} //List<Scenic> scenicList1 = new List<Scenic>(); //XmlDocument xmlDoc1 = new XmlDocument(); //xmlDoc1.Load(@"../../" + "DataScraperWorks/tempMianBaoList.xml"); //XmlNode scenicNode1 = xmlDoc1.SelectSingleNode("scenic"); //XmlNodeList items1 = scenicNode1.ChildNodes; //foreach (XmlNode item in items1) //{ // XmlNode scenicNameNode = item.SelectSingleNode("scenicname"); // string scenicName = scenicNameNode != null ? scenicNameNode.InnerText : "null"; // XmlNode scenicLngNode = item.SelectSingleNode("lng"); // string scenicLng = scenicLngNode != null ? scenicLngNode.InnerText : "null"; // XmlNode scenicLatNode = item.SelectSingleNode("lat"); // string scenicLat = scenicLatNode != null ? scenicLatNode.InnerText : "null"; // XmlNode scenicComeNode = item.SelectSingleNode("from"); // string scenicComeFrom = scenicComeNode != null ? scenicComeNode.InnerText : "null"; // Scenic scenic = new Scenic(); // scenic.scenicName = scenicName; // scenic.scenicLat = scenicLat; // scenic.scenicLng = scenicLng; // scenic.comeFrom = scenicComeFrom; // scenicList1.Add(scenic); //} //Console.WriteLine("scenicList: " + scenicList.Count); //List<Scenic> tempScenicList = new List<Scenic>(); //List<Scenic> tempSameList = new List<Scenic>(); //foreach (Scenic tempScenic in scenicList) //{ // int count = 0; // foreach (Scenic scenic in scenicList1) // { // if (tempScenic.scenicName == scenic.scenicName) // { // //Console.WriteLine("Scenic: " + tempScenic.scenicName); // count++; // } // } // if (count < 1) // { // tempScenicList.Add(tempScenic); // } //} //Console.WriteLine("tempScenicList: " + tempScenicList.Count); //saveXmlDoc(@"../../DataScraperWorks/", "tempOtherSameList.xml", tempScenicList); ////saveXmlDoc(@"../../DataScraperWorks/", "tempSameList.xml", tempSameList); //XmlDocument xmlDoc = new XmlDocument(); //xmlDoc.Load(@"../../" + "DataScraperWorks/tempOtherSameList.xml"); //XmlNode scenicNode = xmlDoc.SelectSingleNode("scenic"); //XmlNodeList items = scenicNode.ChildNodes; //foreach (XmlNode item in items) //{ // XmlNode scenicNameNode = item.SelectSingleNode("scenicname"); // string scenicName = scenicNameNode != null ? scenicNameNode.InnerText : "null"; // XmlNode scenicLngNode = item.SelectSingleNode("lng"); // string scenicLng = scenicLngNode != null ? scenicLngNode.InnerText : "null"; // XmlNode scenicLatNode = item.SelectSingleNode("lat"); // string scenicLat = scenicLatNode != null ? scenicLatNode.InnerText : "null"; // XmlNode scenicComeNode = item.SelectSingleNode("from"); // string scenicComeFrom = scenicComeNode != null ? scenicComeNode.InnerText : "null"; // Scenic scenic = new Scenic(); // scenic.scenicName = scenicName; // scenic.scenicLat = scenicLat; // scenic.scenicLng = scenicLng; // scenic.comeFrom = scenicComeFrom; // scenicList.Add(scenic); //} //Console.WriteLine("scenicList: " + scenicList.Count); //List<Scenic> tempScenicList = new List<Scenic>(); //List<Scenic> tempSameList = new List<Scenic>(); //foreach (Scenic tempScenic in scenicList) //{ // if (tempScenicList.Count == 0) // { // tempScenicList.Add(tempScenic); // } // else // { // int count = 0; // foreach (Scenic scenic in tempScenicList) // { // if (tempScenic.scenicName == scenic.scenicName) // { // count++; // } // } // if (count < 1) // { // tempScenicList.Add(tempScenic); // } // } //} //Console.WriteLine("tempScenicList: " + tempScenicList.Count); //saveXmlDoc(@"../../DataScraperWorks/", "tempOtherScenicList.xml", tempScenicList); }