elements = @doc.xpath("//*[@*[blah]]")
Это бесполезное выражение XPath. Он говорит, чтобы дать вам все элементы, которые имеют атрибуты, которые имеют дочерние элементы с именем «бла». А поскольку атрибуты не могут иметь дочерние элементы, этот XPath никогда ничего не вернет.
Фрагмент DZone сбивает с толку, когда они говорят
elements = @doc.xpath("//*[@*[attribute_name]]")
внутренние квадратные скобки не являются буквальными ... они там, чтобы указать, что вы указали имя атрибута. Тогда как внешние квадратные скобки являются буквальными. : -Р
У них также есть дополнительный *
после @
.
То, что вы хотите, это
elements = @doc.xpath("//*[@blah]")
Это даст вам все элементы, которые имеют атрибут с именем «бла».