zoukankan      html  css  js  c++  java
  • VS2012 MSHA 文件制做程序

    一,目的

    说实在的,写这个软件的目的很简单,也很单纯。微软的Visual Studio 2012做为一个开发工具,这次做的很体贴,让人感觉服务。但是,微软却在这个时候让我们恶心了一把。帮助系统没有附带在ISO里。

    你在IDE里按F1之后,帮助系统,默认是不进行本地安装的。如下图

    image

    如果你要查看帮助内容,简单”联机”

    image

    然后,它会从微软的官网上返回一个可用的帮助文档的列表,你需要什么,下载安装就可以了。

    这个地址是:http://services.mtps.microsoft.com/ServiceAPI/catalogs/visualstudio11/zh-cn (中文版)

    微软的这个设定一直让我很困惑,不明白这样做的原因是什么。后来翻看网上有朋友发布出来的几个msha文件,其中最有说服力的是 “Microsoft 帮助查看器 2.0” ,经过比较发现,帮助文档是一直在更新的。对,没错。一天前你下载的文件,一天后可能就是不一样的了。

    好了,这下我们就有理由来折腾一下了。

    二、过程

    有了目标,我们就一步步来做吧。

    首先,我们的数据来源自网页 http://services.mtps.microsoft.com/ServiceAPI/catalogs/visualstudio11/zh-cn .把网页内容进行解析,找出有用的信息,构建对象模型。

    image

    MshaBookGroups
         此对象只是作为一个容器使用,用来存放 MshaBookGroup
    MshaBookGroup
         业务对象。表示book的分组。包含三个属性
         Id
        Name
        Vendor
    MshaBook
        业务对象。表示具体一个book。属性如下
        Id
        Name
        Locale
        Description
        BrandingPackageName
        Tag  为一个object类型,用于绑定到TreeView里TreeNode
    MshaPackage
        业务对象。表示一个具体的package.属性如下
        PackageType
        PackageFormat
        Name
        ……
    业务对象由html源文件中抽象出来.image

             好了,现在有了需要的对象,那么要把对象从html源文件里解析出来,我们需要用到这个 HtmlAgilityPack 。这是一个html解析的类库,C#可以使用,开源,网上说明的文章很多。

            有了这个类库我们只需要读取下载下来的网页源文件即可。我创建了类 HtmlParser,它的作用只有一个,使用xpath语法将html网页中我们感兴趣的内容转换为需要的业务对象,

            并输出MshaBookGroup。

           当所有可能会用到的对象创建好后,接下来,就要制做msha文件里。仔细比较几个msha文件你会发现它们的共同点,并基本上明白这个文件里的内容是什么意思。OK,打开一个msha文件,

           全选,拷贝到VS的IDE里(使用命令窗口,输入new )新建一个xml文件,粘贴。这样你的文件就会格式化好了。然后按住Alt进行鼠标块(全)选。新一个类 MshaBuilder ,创建方法 Build ,

            在方法里创建一个StringBuilder,然后 粘贴,结果会像我的这样

             image

    三、庐山真面目

                              image

    提供源码,以供学习。

  • 相关阅读:
    jetty服务器
    好久不用的正则表达式
    mysql技术调优资料整理
    .net互转java 转行必备
    docker学习资料整理(持续更新中..)
    tcpdump来抓取执行的sql语句
    DDoS deflate
    Linux网络相关查询脚本
    linux下无法删除文件的原因
    linux使用FIO测试磁盘的iops 【转载】
  • 原文地址:https://www.cnblogs.com/goldli/p/2732737.html
Copyright © 2011-2022 走看看