HTML自闭合标签末尾的斜杠问题

本文详细介绍了HTML5和XHTML中自闭合标签的使用规范,包括是否需要添加斜杠以及不同文档类型之间的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • HTML5的规范中,自闭合标签不加斜杠,但兼容加斜杠的写法;
  • XHTML严格要求自闭合标签中要加斜杠;
  • html文件声明了<!DOCTYPE html>后自闭合标签不需要再加斜杠。
/ 修复Trioptics文档使其符合XML规范: QString TriopticsParser::preprocessTriopticsForXml(const QString & html) { QString result; // 预分配内存(减少重新分配) result.reserve(html.size() + 200); // 合并步骤:查找<html>位置并修复字符集 int htmlStart = html.indexOf("<html>", 0, Qt::CaseInsensitive); if (htmlStart == -1) htmlStart = 0; // 单次遍历处理多个任务 bool xmlAdded = false; // 避免重复检查 int pos = htmlStart; const int htmlSize = html.size(); while (pos < html.size()) { // 使用预编译的正则表达式 QRegularExpressionMatch tagMatch = tagRegex.match(html, pos); if (tagMatch.hasMatch()) { const int matchStart = tagMatch.capturedStart(); // 添加标签前的内容(使用QStringRef避免复制) if (matchStart > pos) { result.append(QStringRef(&html, pos, matchStart - pos)); } // 获取标签组件(转换为小写) QString selfClose = tagMatch.captured(0); QString slash = tagMatch.captured(1); QString tagName = tagMatch.captured(2).toLower(); // 特殊标签处理 if (tagName == "html" && !result.contains("<?xml")) { result.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"); } // 构建新标签 result += '<' % slash % tagName % '>'; pos = tagMatch.capturedEnd(); // 自闭合标签特殊处理 QRegularExpressionMatch selfMatch = selfClosingRegex.match(selfClose); if (selfMatch.hasMatch()) { result.replace(result.length() - 1, 1, "/>"); } } } result.replace("</link>", ""); // 移除无效闭合标签 return result; }优化
最新发布
08-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值