ruby - 查找带有前缀属性名称的属性
问题描述
我的 html 看起来像:
<div in-prop in-alias="" in-type="teacher"><div in-name="Alice">Hello <i in-name="Wonderland">World</i></div></div>
我想根据前缀in-
属性名称收集自定义属性名称,我有工作代码并返回["prop", "alias", "type", "name", "name"]
require 'nokogiri'
class PartB
def get_scheme(html)
get_doc(html).map { |elm|
elm.attributes.map{|k, v| k.gsub("in-", "") if !k.nil? && k.include?("in-")}
}.flatten.compact
end
def get_doc(html)
Nokogiri::HTML(html).search('*')
end
end
但我认为这是多余的,因为我使用search('*')
它会获取所有 html 标签。有没有办法做到这一点?
解决方案
doc = Nokogiri::HTML('<div in-prop in-alias="" in-type="teacher"><div in-name="Alice">Hello <i in-name="Wonderland">World</i></div></div>')
a = doc.xpath("//@*[starts-with(name(), 'in')]")
a.map { |i| i.name[3..-1] } # => ["prop", "alias", "type", "name", "name"]
推荐阅读
- sql - 仅当同一列中的值不同时才使用临时表更新表
- python - 在python中查找两个不同列表中的值是否匹配
- math - 如何将精灵从一个平面翻译到另一个平面
- windows - `pyembree` 的 CMake 构建帮助
- php - 我需要获取多页网站的引用页面的完整 URL
- amazon-web-services - 可以使用 Plesk 在 AWS Lightsail 上接收但不能发送电子邮件
- spring - spring-cloud + keykloak oauth2 流
- html - 如何在引导列之间留出空间
- python - Adding a nullable column in PySpark dataframe
- python - 当我尝试使用 ffmpeg 和烧瓶寻找流时出错