Skip to content

Instantly share code, notes, and snippets.

@san9dev
Last active September 14, 2020 11:27
Show Gist options
  • Save san9dev/5640006ed67d43ca6c11245601708f02 to your computer and use it in GitHub Desktop.
Save san9dev/5640006ed67d43ca6c11245601708f02 to your computer and use it in GitHub Desktop.
Шпора по nokogiri

Создание объекта нокогири из XML

  xml_file = File.read(file_path)
  noko_doc = Nokogiri::XML(xml) do |opts| 
    opts.huge.nonet.noblanks.strict # удаляем пробелы, пустые элементы, символы новой строки
  end

метод xpath ищет все вхождения переданого заначения xml элемента (node) и возвращает массив (объект Nokogiri::NodeSet)

  xpath('//node_name')

Добавление элемента перед элементом

  noko_xml_doc.add_previous_sibling(node)

метод принимает параметр в виде имени элемента который нужно вставить

пример

noko_xml_doc.xpath('//second_node').add_previous_sibling(first_node)

поиск первого совпадения и возврат имени родительского элемента

at_xpath('//zones_and_boundaries//view_borders_reg_obj')&.parent&.name
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment