查找具有前缀属性名称的属性
Find attributes with prefix attribute name
我有 html 喜欢 :
<div in-prop in-alias="" in-type="teacher"><div in-name="Alice">Hello <i in-name="Wonderland">World</i></div></div>
我想根据前缀 in-
属性名称收集自定义属性名称,我有工作代码和 returns ["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"]
我有 html 喜欢 :
<div in-prop in-alias="" in-type="teacher"><div in-name="Alice">Hello <i in-name="Wonderland">World</i></div></div>
我想根据前缀 in-
属性名称收集自定义属性名称,我有工作代码和 returns ["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"]