Tidy

介绍了一种利用JTidy将HTML网页转换为XML的方法,并通过XSLT抽取所需数据的过程。该方法解决了网页不规范导致无法直接转换为XML的问题。

自己写的一个程序需要从网页抓取数据,思路是将网页转换成XML 文件,然后用调用java读xml的方法解析内容。

问题是网页通常都写的不规范,不能转成标准xml。

Tidy 是 W3C 用来解析网页的一个软件包,可以方便地将 HTML 文档转换为符合 XML 标准的文档,由于 XML 可以方便地使用 XSLT 技术对内容进行抽取,所以使用 Tidy 配合 XSLT 可以方便地将各种网页的内容抽取出来,保存成我们需要的格式。
通过 JTidy 可以方便地将标准的 HTML 网页转换为 XML 的 DOM 对象,然后,通过 XPaht 和 XSLT 将需要的内容抽取出来。

http://sourceforge.net/projects/jtidy/

例子:
 public static Document genDocFromUrl(String urlAddress) throws Exception{
  // 设置 tidy ,准备转换
  Tidy tidy = new Tidy();
  tidy.setXmlOut(true); // 输出格式 xml
  tidy.setDropFontTags(true); // 删除字体节点
  tidy.setDropEmptyParas(true); // 删除空段落
  tidy.setFixComments(true); // 修复注释
  tidy.setFixBackslash(true); // 修复反斜杆
  tidy.setMakeClean(true); // 删除混乱的表示
  tidy.setQuoteNbsp(false); // 将空格输出为  
  tidy.setQuoteMarks(false); // 将双引号输出为 "
  tidy.setQuoteAmpersand(true); // 将 & 输出为 &
  tidy.setShowWarnings(false); // 不显示警告信息

  
  URL url = new URL(urlAddress);
  URLConnection uc = url.openConnection(); // 建立连接
  Document doc = tidy.parseDOM( uc.getInputStream() ,null ); // 通过 JTidy 将 HTML 网页解析为

  return doc;
 }

 

提供了基于BP(Back Propagation)神经网络结合PID(比例-积分-微分)控制策略的Simulink仿真模型。该模型旨在实现对杨艺所著论文《基于S函数的BP神经网络PID控制器及Simulink仿真》中的理论进行实践验证。在Matlab 2016b环境下开发,经过测试,确保能够正常运行,适合学习和研究神经网络在控制系统中的应用。 特点 集成BP神经网络:模型中集成了BP神经网络用于提升PID控制器的性能,使之能更好地适应复杂控制环境。 PID控制优化:利用神经网络的自学习能力,对传统的PID控制算法进行了智能调整,提高控制精度和稳定性。 S函数应用:展示了如何在Simulink中通过S函数嵌入MATLAB代码,实现BP神经网络的定制化逻辑。 兼容性说明:虽然开发于Matlab 2016b,但理论上兼容后续版本,可能会需要调整少量配置以适配不同版本的Matlab。 使用指南 环境要求:确保你的电脑上安装有Matlab 2016b或更高版本。 模型加载: 下载本仓库到本地。 在Matlab中打开.slx文件。 运行仿真: 调整模型参数前,请先熟悉各模块功能和输入输出设置。 运行整个模型,观察控制效果。 参数调整: 用户可以自由调节神经网络的层数、节点数以及PID控制器的参数,探索不同的控制性能。 学习和修改: 通过阅读模型中的注释和查阅相关文献,加深对BP神经网络与PID控制结合的理解。 如需修改S函数内的MATLAB代码,建议有一定的MATLAB编程基础。
### clang-tidy 使用指南 `clang-tidy` 是一个基于 Clang 的 C++ 静态分析工具,用于检测代码中的潜在错误、不规范的编程习惯以及建议改进代码质量。它支持广泛的检查规则,并允许通过配置文件进行定制化设置,以满足不同项目的需求。 #### 基本使用方法 `clang-tidy` 可以直接在命令行中运行,通常与编译命令一起使用,以便了解项目的编译环境。例如: ```bash clang-tidy file.cpp -- -std=c++17 -Iinclude_path ``` 其中 `--` 后面的部分是传递给 Clang 编译器的参数,帮助 `clang-tidy` 理解项目的构建环境。 #### 配置规则 `clang-tidy` 支持通过 `.clang-tidy` 文件来定义启用或禁用的检查规则。该文件应放置在项目的根目录下,其内容示例如下: ```yaml Checks: '-*,modernize-*,cppcoreguidelines-*,clang-analyzer-*' CheckOptions: - key: modernize-use-override.AddOverride value: 1 ``` 上述配置表示禁用所有检查(`-*`),然后启用 `modernize-*`、`cppcoreguidelines-*` 和 `clang-analyzer-*` 系列的检查规则。此外,还可以通过 `CheckOptions` 来调整特定检查规则的行为,如为 `modernize-use-override` 检查器添加 `AddOverride` 选项以自动添加 `override` 关键字。 #### 开发者工具集成 `clang-tidy` 可以很好地与其他开发者工具集成,提高代码审查的效率。例如,在 Git 工作流中,可以通过 `pre-commit` 钩子来运行 `clang-tidy`,确保提交的代码符合项目的编码标准。这有助于在早期发现并修复问题,减少后期维护成本。 此外,对于使用 Qt Creator 或 Visual Studio 的开发者来说,也有相应的插件或内置支持,使得 `clang-tidy` 成为开发环境中不可或缺的一部分。这种集成不仅简化了工具的使用,还促进了持续的质量保证实践。 #### 自动修复功能 除了报告问题外,`clang-tidy` 还提供了自动修复功能,能够对某些类型的警告提供修复建议。这一特性极大地提高了修复旧代码或大规模重构的效率。要启用自动修复,可以在命令行中添加 `-fix` 参数: ```bash clang-tidy -fix file.cpp -- -std=c++17 -Iinclude_path ``` 此命令将尝试自动应用所有可用的修复程序,对于无法自动处理的问题,仍需人工干预。 #### 定制化与最佳实践 为了最大化 `clang-tidy` 的效用,建议根据项目的具体情况定制检查规则。这意味着不仅要选择合适的检查器组合,还要适时调整每个检查器的具体选项,以适应项目的编码风格和技术栈特点。同时,将 `clang-tidy` 集成到日常开发流程中,如 CI/CD 流程,可以确保代码质量的一致性和持续提升。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值