C# xml压缩包不解压的情况下解析xml内容
1 string sourceFilePath = @"E:\文件拷贝\xx\3773\3773.zip"; 2 3 FileInfo fileInfo = new FileInfo(sourceFilePath); 4 long length = fileInfo.Length; 5 6 if (length == 0) 7 { 8 return; 9 } 10 11 using (ZipInputStream zip = new ZipInputStream(File.OpenRead(sourceFilePath))) 12 { 13 ZipEntry theEntry; 14 string destinationDirPath = @"\\172.21.3.21\liung\"; 15 while ((theEntry = zip.GetNextEntry()) != null) 16 { 17 destinationDirPath += theEntry.Name; 18 19 using (FileStream streamWriter = new FileStream(destinationDirPath, FileMode.Create, FileAccess.Write, FileShare.Read | FileShare.Write)) 20 { 21 byte[] bytes = new byte[zip.Length]; 22 zip.Read(bytes, 0, bytes.Length); 23 streamWriter.Write(bytes, 0, bytes.Length); 24 } 25 26 XmlTextReader xmlReader = new XmlTextReader(zip); 27 while (xmlReader.Read()) 28 { 29 if (xmlReader.NodeType == XmlNodeType.Element && xmlReader.Name.ToLower() == "fileheader") 30 { 31 string reportTime = xmlReader.GetAttribute("reportTime").Replace("24:00:00", "23:59:59"); 32 string startTime = xmlReader.GetAttribute("startTime").Replace("24:00:00", "23:59:59"); 33 string endTime = xmlReader.GetAttribute("endTime").Replace("24:00:00", "23:59:59"); 34 35 break; 36 } 37 } 38 } 39 } 40 41 Console.ReadKey(); 42 43 using (GZipInputStream zip = new GZipInputStream(File.OpenRead(sourceFilePath))) 44 { 45 using (XmlTextReader xmlReader = new XmlTextReader(zip)) 46 { 47 while (xmlReader.Read()) 48 { 49 // hw没有period,暂时给一个默认值15 50 if (xmlReader.NodeType == XmlNodeType.Element && xmlReader.Name.ToLower() == "fileheader") 51 { 52 string reportTime = xmlReader.GetAttribute("reportTime").Replace("24:00:00", "23:59:59"); 53 string startTime = xmlReader.GetAttribute("startTime").Replace("24:00:00", "23:59:59"); 54 string endTime = xmlReader.GetAttribute("endTime").Replace("24:00:00", "23:59:59"); 55 56 break; 57 } 58 } 59 } 60 }
基础才是编程人员应该深入研究的问题,比如:
1)List/Set/Map内部组成原理|区别
2)mysql索引存储结构&如何调优/b-tree特点、计算复杂度及影响复杂度的因素。。。
3)JVM运行组成与原理及调优
4)Java类加载器运行原理
5)Java中GC过程原理|使用的回收算法原理
6)Redis中hash一致性实现及与hash其他区别
7)Java多线程、线程池开发、管理Lock与Synchroined区别
8)Spring IOC/AOP 原理;加载过程的。。。
【+加关注】。