HTML内联样式提取器 - 批量整理为独立CSS
提取HTML中内联style属性或嵌入式style标签,转变为独立CSS规则,辅助样式重构。
UD5工具箱
| 表达式 | 说明 | 示例 |
|---|---|---|
//tagname | 选取所有指定标签的元素 | //div 所有div |
/ | 从根节点选取(绝对路径) | /html/body/div |
// | 从任意位置选取(相对路径) | //p 任意位置的p |
. | 当前节点 | ./div |
.. | 父节点 | ../div |
[@attr] | 选取具有指定属性的元素 | //a[@href] |
[@attr='val'] | 属性精确匹配 | //div[@class='main'] |
[@attr!='val'] | 属性不等于 | //div[@class!='x'] |
contains(@attr,'v') | 属性包含某值 | //div[contains(@class,'active')] |
starts-with(@attr,'v') | 属性以某值开头 | //input[starts-with(@name,'user')] |
text() | 选取文本节点 | //h1/text() |
@attr | 选取属性节点 | //a/@href |
[position()=n] | 按位置选取(从1开始) | //li[position()=1] |
[n] | 第n个(简写) | //li[3] |
[last()] | 最后一个 | //li[last()] |
[last()-1] | 倒数第二个 | //li[last()-1] |
count(expr) | 计数函数 | count(//div) |
string(expr) | 转换为字符串 | string(//title) |
normalize-space() | 去除多余空白 | //h1[normalize-space()='Hello'] |
parent::* | 父元素(轴) | //div/parent::section |
ancestor::tag | 祖先元素 | //p/ancestor::div |
following-sibling::* | 后续兄弟节点 | //h1/following-sibling::p |
preceding-sibling::* | 前面兄弟节点 | //p/preceding-sibling::h2 |
child::* | 所有子元素 | //ul/child::li |
| | 联合(并集) | //h1 | //h2 | //h3 |
and / or | 逻辑运算符 | //div[@a='1' and @b='2'] |
> / < | 大于/小于比较 | //div[position()>3] |
* | 通配符(任意元素) | //div/* div下所有子元素 |
@* | 任意属性 | //div[@*] 有任意属性的div |
XPath(XML Path Language)是一种用于在 XML 和 HTML 文档中定位节点的查询语言。它通过路径表达式来选取文档中的元素、属性、文本等节点,广泛应用于网页爬虫、自动化测试(如 Selenium)、XSLT 转换等场景。
CSS 选择器主要用于样式匹配,语法简洁,适合简单的元素选择。XPath 更强大,支持双向遍历(向上查找父元素、祖先、兄弟节点)、条件函数(contains、starts-with)、文本内容匹配、计数等复杂操作,但语法相对复杂。对于需要精确定位的场景,XPath 更加灵活。
常见原因:① 输入的HTML被DOMParser自动补全了<html>、<head>、<body>等结构,导致绝对路径变化——建议使用 // 相对路径;② HTML标签在解析后统一转为小写,XPath中需使用小写标签名;③ 属性值大小写敏感,需精确匹配;④ 命名空间问题(普通HTML通常无此问题)。
绝对路径以 / 开头,从文档根节点开始逐级定位,如 /html/body/div/p,路径长、脆弱、不灵活。相对路径以 // 开头,从文档任意位置搜索,如 //p,更灵活健壮。推荐优先使用相对路径。
HTML元素的class可能包含多个值(如 class="btn primary active"),使用 contains(@class, 'active') 比 @class='active' 更可靠,因为后者要求完全匹配整个class字符串。
使用 text() 函数选取文本节点,如 //h1/text() 获取h1的文本内容。要按文本匹配元素,使用 //div[text()='Hello'] 或 //div[contains(text(),'关键词')]。注意 normalize-space() 可去除多余空白后再匹配。
本工具使用浏览器内置的 document.evaluate() API,支持 XPath 1.0 标准。XPath 1.0 涵盖了绝大多数常用场景,包括节点选择、谓语过滤、核心函数(count、contains、starts-with、normalize-space等)和轴(axes)。不支持 XPath 2.0/3.0 的高级特性(如正则匹配、序列等)。
浏览器的DOMParser在解析HTML时会按照HTML规范自动构建完整的文档树结构。即使你只输入了一个片段(如 <div>test</div>),解析器也会补全为 <html><head></head><body><div>test</div></body></html>。这是正常行为,使用 // 相对路径即可避免此问题。
提取HTML中内联style属性或嵌入式style标签,转变为独立CSS规则,辅助样式重构。
粘贴HTML表格代码或从网页抓取,自动识别行列并转换为CSV格式,方便导入Excel。
输入新旧JSON,并排展示增删改的行级差异,辅助接口变动追踪。
配置内容和位置,生成使用最新HTML popover属性的轻量弹窗代码,无需JavaScript。
将 JSON 数组或对象渲染为可交互的 HTML 表格,支持嵌套展开、列排序和搜索。
粘贴HTML和基本CSS,分析渲染后视觉顺序与DOM顺序的差异,避免可访问性问题。
并列播放所有CSS内置缓动函数(ease, linear等)的动画效果,方便对比选择。
提取HTML中所有内嵌 `<style>` 标签的内容,合并生成单独CSS文件。
选择背景图片(或使用占位色),配置标题、副标题和按钮,生成Hero区域代码。
选择触发位置、箭头方向与样式,生成轻量悬停提示框代码。
粘贴带参数的URL,以表格形式列出所有Query参数与值。
将普通HTML标记转换为符合JSX语法的代码,自动处理class→className、行内样式对象化等。
输入 HTML 或网址,提取所有标题标签,生成文档大纲树,检测跳跃和缺失。
将普通HTML片段一键转为React可用的JSX,处理class→className、style等。
粘贴结构化数据代码,模拟Google结构化数据测试,检查错误与丰富结果。
批量将文本中的<,>,&,等转换为HTML实体,或反向还原,包含选项保留已转义实体。
编写带有伪类的选择器,实时高亮匹配的HTML元素,探索现代CSS选择器的能力。
为内容区域生成灰色闪烁的骨架屏占位代码,包含卡片、标题等组件样式。
搜索CSS属性,显示其在主流浏览器的支持范围和前缀需求,快速避免踩坑。
在浏览器中即时测试for、forEach、map、for-of等循环的执行速度,帮助选择最优写法。
粘贴PHP print_r或var_export输出,智能解析为有效的JSON。
添加层级名称与链接,自动生成带Schema结构化的面包屑导航条。
上传PDF,选择需要保留的页码(如1,3-5),生成仅含这些页面的新文档。
设定最小、首选、最大三个尺寸及视口范围,生成响应式CSS clamp()表达式。
显示文本中的非换行空格、全角空格等隐藏字符映射。
勾选或调整所需的重置元素(盒模型、边距等),生成自定义CSS Reset片段,确保跨浏览器一致性。
勾选需要展示的选项(接受/拒绝/设置),生成纯净HTML/JS代码,自行套用样式。
调节宽度、颜色、条纹动画等参数,实时预览并生成进度条HTML/CSS。
粘贴网页上的 HTML 表格代码,自动提取数据并转换为 JSON 或 CSV 格式下载。
通过勾选元素关系(子孙、兄弟)、属性、伪类等条件,自动生成精确的CSS选择器字符串。