`
cuijiemin
  • 浏览: 265557 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

实现HTML的简单压缩

阅读更多

PageReleaser需要一种HTML的压缩算法,Google了很久,发现如果只是简单去除空白和注释的话,使用XLinq就可以轻易的实现

先看看MSDN是怎么说的:

一种常用方案是读取缩进的 XML,在内存中创建一个没有任何空白文本节点(即不保留空白)的 XML 树,对该 XML 执行某些操作,然后保存带缩进的 XML。在序列化带格式的 XML 时,只保留 XML 树中有意义的空白。这是 LINQ to XML 的默认行为。

另一个常见的情况是读取和修改已经有意缩进的 XML。您可能不想以任何方式更改这种缩进。若要在 LINQ to XML 中执行此操作,您要在加载或解析 XML 时保留空白,并在序列化 XML 时禁用格式设置。

简单的说,XDocument载入时,默认使用LoadOptions::None,自动去掉XML的空白;保存时,默认使用SaveOptions::None,自动格式化XML。

也就是说,使用XDocument将一个HTML文档打开什么也不作就保存,其实等于实现了HTML的格式化。

而如果在保存时,使用SaveOptions::DisableFormatting参数,看似要保存XML的空白,由于载入时所有空白都被删掉了,其实等于删除了所有空白,于是去掉空白就这样实现了。

至于删掉注释也很简单,只是需要注意,一般页面嵌入JavaScript会使用注释节点包裹,需要例外处理。

整个HTML压缩代码如下:

var nodes = from s in doc.DescendantNodes()
where s.NodeType == XmlNodeType.Comment &&
string.Compare( s.Parent.Name.LocalName, "script", true ) != 0
select s;

nodes.Remove();
doc.Save( sm.OutputPath + "index.html", SaveOptions.DisableFormatting );

简单吧,不过HTML不能直接使用XML解析器,需要预先转换为XHTML,点击察看转换实现。

分享到:
评论

相关推荐

    HTML压缩,压缩效率高,不错的.

    VB6.0实现HTML压缩可能包括以下步骤: 1. **读取HTML文件**:使用VB6.0的FileOpen和FileReadLine函数读取HTML文件内容。 2. **处理HTML内容**:遍历每行内容,应用上述压缩规则。 3. **写入压缩后的HTML**:使用...

    前端js使用jszip实现文件压缩功能

    JSZip是一个非常实用的JavaScript库,它允许我们在浏览器环境中实现文件的压缩与解压缩,无需服务器端的支持。在这个场景中,我们将讨论如何利用JSZip和FileSaver.js库在前端实现文件的压缩并下载为ZIP格式。 首先...

    layui实现文件压缩上传

    在本项目“layui实现文件压缩上传”中,我们重点关注的是如何利用layui的上传组件结合JavaScript技术来处理大图片的压缩,以优化文件上传性能和降低服务器存储负担。以下是对这个知识点的详细阐述: 1. **layui上传...

    html5 canvas 图片压缩

    在"html5 canvas 图片压缩"这个主题中,我们将探讨如何利用Canvas来实现图片的压缩,并解决不同浏览器的兼容性问题,以及在微信等特定环境下图片旋转和压缩的解决方案。 首先,我们要理解Canvas的基本用法。在HTML...

    HTML压缩代码 VB6源码

    在VB6中,实现HTML压缩可能涉及到以下几个关键知识点: 1. **字符串操作**:VB6提供了一系列内建函数,如`Mid()`、`Left()`、`Right()`和`Replace()`,用于处理字符串。在压缩HTML时,可能需要使用这些函数来删除...

    最简单的gzip压缩

    总的来说,“最简单的gzip压缩”涉及了gzip作为数据压缩工具的使用,以及如何在Web服务器上通过`.htaccess`文件配置实现HTTP响应的gzip压缩。这是一个非常基础但实用的技巧,对于优化网站性能和降低服务器负载具有...

    php压缩页面的html代码一行显示.pdf

    实现PHP压缩HTML代码的关键在于利用PHP的输出缓冲(Output Buffering)机制。输出缓冲允许开发者在脚本执行完毕后一次性输出所有内容,而不是实时发送到浏览器。这样,我们可以在脚本执行过程中对输出内容进行修改,...

    用HTML+CSS做一个漂亮简单的旅游网站——旅游网页设计与实现(6页)HTML+CSS+JavaScript

    - **反垃圾评论机制**: 实现简单的人机验证(如验证码),防止恶意评论。 ### 三、工具与技术栈 - **HTML编辑器**: 如Dreamweaver、HBuilder、Vscode、Sublime等,支持实时预览和代码高亮。 - **版本控制**: 使用...

    Asp.net使用HttpModule压缩并删除空白Html请求的实现代码

    在讨论如何实现***中使用HttpModule压缩并删除空白Html请求之前,我们首先要了解几个关键概念。首先,HttpModule是***的中间件组件,它允许开发者以事件驱动的方式来处理HTTP请求和响应,实现请求处理的扩展和定制。...

    java开发中压缩js,css文件

    CSS的压缩则相对简单,主要步骤是删除空格、换行和注释,以及缩写属性值。例如,将"background-color:#fff;"压缩为"bg:#fff;". 同样,我们可以通过调用像YUI Compressor这样的工具,将css文件作为输入,输出压缩后的...

    压缩与解压缩

    例如,你可以从实现一个简单的霍夫曼编码开始,构建霍夫曼树,然后用它来编码和解码数据。对于LZW,你需要理解如何建立查找表并动态更新。这涉及到数据结构(如链表和树)和递归或迭代的编程技巧。同时,实现压缩库...

    HTML5上传图手机图片压缩

    HTML5上传图手机图片压缩是...综上所述,HTML5上传图手机图片压缩涉及到了HTML5的File API、FileReader、Canvas、Blob对象等多个技术点,结合合适的库如localResizeIMG.js,可以实现高效、便捷的图片上传和压缩功能。

    AsposePdf将pdf压缩

    下面是一个简单的C#代码示例,演示如何使用Aspose.Pdf压缩PDF文件: ```csharp using Aspose.Pdf; // 加载PDF文档 Document document = new Document("input.pdf"); // 设置压缩级别 document.CompressionLevel =...

    多图上传压缩

    4. **Vue.js**:`vue.min.js`表明此功能可能使用Vue.js框架实现,Vue提供了组件化开发模式,可以创建一个`MultiUpload`组件来封装整个上传逻辑,包括选择图片、预览、压缩和上传等步骤。 5. **HTML与CSS**:`test....

    js图片压缩

    - `img-compress`:这个库提供了简单的API,可以设置最大宽度、高度和质量参数,适合快速实现图片压缩功能。 - `jpeg-js`:专注于JPEG图片的JavaScript解码和编码,适用于需要高效处理JPEG图片的场景。 - `sharp`...

    H5实现调用手机摄像头相册。完美实现图片压缩、预览、删除的功能。---Demo

    以下是一个简单的图片压缩示例: ```javascript function compressImage(file, maxWidth, maxHeight, quality) { return new Promise((resolve, reject) => { const img = new Image(); img.onload = function()...

    VB.NET使用ZipPackage实现ZIP文件压缩解压缩示例

    在.NET框架中,VB.NET提供了一种方便的方式来处理ZIP文件的压缩和解压缩,这主要...在实际应用中,你可以根据需要扩展这些基本示例,例如添加错误处理、支持多个文件操作,或者结合UI实现交互式的压缩和解压缩功能。

    构建html一键自动化压缩cssjsimages支持ES6模块化

    本项目名为"html-simple-build-tools",旨在提供一个简单易用的构建系统,不依赖于大型构建工具如Webpack或Gulp,而是充分利用npm脚本来实现自动化。 标题中的“构建html一键自动化压缩css js images 支持ES6模块化...

    HTML_CSS_JS压缩工具

    HTML压缩主要通过删除不必要的空格、换行符和注释来实现。例如,HTMLcompressor-1.5.3这个工具可能包含了这样的功能,它可以智能地识别并移除这些不会影响代码功能的多余字符。此外,一些工具还可能支持合并多个HTML...

    PHP实现zip压缩

    创建一个简单的HTML表单,用户可以上传zip文件,然后服务器端使用PHP进行解压缩或压缩操作。确保在生产环境中添加适当的错误处理和安全检查。 5. **更强大的功能**: `ZipArchive`类还提供了其他功能,如检查文件...

Global site tag (gtag.js) - Google Analytics