zoukankan      html  css  js  c++  java
  • C# 基础学习笔记

    1.XML解析

      当xml文件中出现多个<ListItem>时候,如果直接获得这个标签的InnerText,会得到三个标签内部全部的数据。

    <?xml version="1.0" encoding="utf-8" ?>
    <XmlConfig> 
      <ConfigTable>
        <Name> 万联6</Name>
        <Path>D:文件w数据.rar</Path>
        <TargetPath>D:sS0008-hr23h</TargetPath>
        <SystemType>万联</SystemType>
        <ListItem>ipogh*.txt@ipogh%sMMDD%.txt</ListItem>
        <ListItem>gh*.dbf@gh%sYYYYMMDD%.dbf</ListItem>
        <ListItem>sjsdz*.dbf@sjsdz%sMMDD%.dbf</ListItem>
      </ConfigTable> 
      <ConfigTable>
        <Name> 万联</Name>
        <Path>D:文件数据.rar</Path>
        <TargetPath>D:文件008-hr23h</TargetPath>
        <SystemType>万联s</SystemType>
        <ListItem>ipogh*.txt@ipogh%sMMDD%.txt</ListItem>
        <ListItem>gh*.dbf@gh%sYYYYMMDD%.dbf</ListItem>
        <ListItem>sjsdz*.dbf@sjsdz%sMMDD%.dbf</ListItem>
      </ConfigTable> 
    </XmlConfig>

    网上找了些,不是想要的。看了官网的api,写了方法测试。

     1 private static void ParseXML()
     2         {
     3             XmlDocument xmlDoc = new XmlDocument();
     4             xmlDoc.Load("D:/devFile/name.xml");
     5             XmlNodeList nodes = xmlDoc.SelectNodes("XmlConfig/ConfigTable");
     6             List<MultiNode> list = new List<MultiNode>();
     7             foreach (XmlNode node in nodes)
     8             {
     9                 XmlNodeList no = node.ChildNodes;
    10                 if (no.Count > 4)
    11                 {
    12                     MultiNode mulitNode = new MultiNode();
    13                     mulitNode.Name = no.Item(0).InnerText;
    14                     mulitNode.Path = no.Item(1).InnerText;
    15                     mulitNode.SystemType = no.Item(2).InnerText;
    16                     mulitNode.TargetPath = no.Item(3).InnerText;
    17                     //mulitNode.TargetPath = no.Item(4).InnerText;
    18                     //mulitNode.TargetPath = no.Item(5).InnerText;
    19 
    20                     for (int i = 4; i < no.Count; i++)
    21                     {
    22                         mulitNode.TurnList.Add(no.Item(i).InnerText);
    23                     }
    24                     list.Add(mulitNode);
    25                 }
    26             }
    27             System.Diagnostics.Debug.WriteLine(list.Count);
    28         }
    View Code
        public class MultiNode
        {
            public string Name { get; set; }
            public string Path { get; set; }
            public string TargetPath { get; set; }
            public string SystemType { get; set; }
            public List<string> TurnList = new List<string> { };
        }
    View Code

     2.解压缩文件

      

            public static void ZidpFileTest()
            {
                string startPath = "E:\Test1\20170329";
                string zipPath = "E:\Test1\20170329.rar";
                string extractPath = "E:\Test2\20170329";
                if (!File.Exists(zipPath))
                {
                    ZipFile.CreateFromDirectory(startPath, zipPath);
                }
                
                if (!Directory.Exists(extractPath))
                {
                    ZipFile.ExtractToDirectory(zipPath, extractPath);
                }
            }

      2.1 新建的解决方案是控制台应用,有些程序集没有自动加载进来,需要手动指定。如下,在引用处右键添加指定程序集

       

      2.2 测试时,需要遇到文件权限问题,抛出异常。

        原因:服务器上拷贝的文件,有对应的权限。在本机新建对应文件夹和文件就可以解压缩了。

            编辑服务器上文件的权限,应该可以解决下面的异常(未实际操作)

        

      

  • 相关阅读:
    动手动脑——登录界面
    异常处理动手动脑问题
    继承与多态
    课程作业04——动手动脑(字符串String)
    创建过的对象的个数
    类和对象动手动脑问题
    第二周进度条
    构建之法阅读笔记01
    新课程界面
    软件工程概论课后作业01
  • 原文地址:https://www.cnblogs.com/havenenjoy/p/6648862.html
Copyright © 2011-2022 走看看