xml - 以安全的 Rust 方式切片 XML 字符串
问题描述
解决方案
我想大多数 XML 解析器会在整个输入流级别检查有效的 UTF-8 编码,然后会在更高级别进一步检查“root”和“ß❤”是有效的 XML 名称。您当然正确地观察到这些检查可能成本高昂并且存在优化的机会;并且这些机会之一可能是利用 UTF-8 编码原则确保八位字节 x3C 永远不会出现在 UTF-8 流中,除非作为字符“<”的表示。
您还可以通过完全取消一些检查来降低解析成本。不能检测所有错误的解析器不符合 W3C 标准,但这并不意味着它毫无用处。但是,请注意不要沉迷于性能而牺牲其他一切:对于 95% 的用户来说,产生好的错误消息可能至少值得 10% 的性能开销。
推荐阅读
- mysql - MySQL vs SQLSERVER 语法用于选择声明的变量
- java - 如何将带有静态方法的 Groovy 特征应用于 Junit 测试类?
- .net - 如何在 VS 2015 中向 Web 表单应用程序添加配置转换?
- chart.js - 如何根据图片在图表js中设置刻度
- java - How can i know when a JFrame is maximized state Java Swing
- android - 是否可以使用 Bluestacks 对 Nativescript 应用程序进行自动化测试?
- google-cloud-platform - 如何从 GCE VM 实例将视频上传到 Google Cloud Storage
- javascript - 使用 Jquery 选择多个元素,但使用 addClass() 仅向其中一个添加一个类
- c - 如何在 Ubuntu 上获取文件路径 VS 项目?
- python - 烧瓶:使 Dataframe.to_html() 的行可点击