{"id":7611,"date":"2016-01-22T17:40:24","date_gmt":"2016-01-22T17:40:24","guid":{"rendered":"https:\/\/dev.railscarma.com\/learning-the-fundamentals-of-nokogiri-gem\/"},"modified":"2022-08-30T09:02:48","modified_gmt":"2022-08-30T09:02:48","slug":"lara-dig-grunderna-i-nokogiri-gem","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/lara-dig-grunderna-i-nokogiri-gem\/","title":{"rendered":"L\u00e4r dig grunderna i Nokogiri Gem"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"7611\" class=\"elementor elementor-7611\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-33949423 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"33949423\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1463273c\" data-id=\"1463273c\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5ee31e0f elementor-widget elementor-widget-text-editor\" data-id=\"5ee31e0f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><\/p>\n<p>V\u00e4rlden snurrar snabbare och snabbare och denna acceleration \u00e4r tydlig i alla aspekter av v\u00e5ra liv. Speciellt n\u00e4r det kommer till f\u00f6retag ligger premien p\u00e5 hastigheten. I denna frenetiska accelererade \u00e4r volatiliteten den enda konstanten. F\u00f6r att h\u00e4nga med i takten och f\u00f6r att ligga steget f\u00f6re den allt h\u00e5rdare konkurrensen letar f\u00f6retag efter s\u00e4tt att \u00f6ka effektiviteten och f\u00e5 snabbare marknadshastighet. Detta f\u00f6rklarar frenesien bakom populariteten f\u00f6r programmeringsspr\u00e5k som Ruby on Rails. Det som g\u00f6r Ruby on Rails \u00e4nnu mer fantastiskt \u00e4r det stora antalet \u00e4delstenar som den kommer packad med. F\u00f6rest\u00e4ll dig ett verktyg och du har f\u00f6rmodligen det i ditt Ruby-kit. En av de b\u00e4sta p\u00e4rlorna f\u00f6r Ruby on Rails \u00e4r Nokogiri som \u00e4r ett bibliotek f\u00f6r att hantera XML- och HTML-dokument. Den vanligaste anv\u00e4ndningen av en parser som Nokogiri \u00e4r att extrahera data fr\u00e5n strukturerade dokument. Exempel:<\/p>\n<ul style=\"font-family: \" montserrat\",sans-serif;\"=\"\">\n<li>En lista \u00f6ver priser fr\u00e5n en prisj\u00e4mf\u00f6relsewebbplats.<\/li>\n<li>S\u00f6kresultatl\u00e4nkar fr\u00e5n en s\u00f6kmotor.<\/li>\n<li>En lista med svar fr\u00e5n en Q&amp;A-webbplats.<\/li>\n<\/ul>\n<p><strong>Installation:<\/strong><\/p>\n<p><strong>OS X:<\/strong><\/p>\n<p>S\u00e5 h\u00e4r installerar du libxml2 fr\u00e5n macports:<\/p>\n<blockquote>\n<p>$ sudo port installera libxml2 libxslt<\/p>\n<\/blockquote>\n<p>Sedan f\u00f6r att installera nokogiri:<\/p>\n<blockquote>\n<p>$ sudo gem installera nokogiri<\/p>\n<\/blockquote>\n<p><strong>Linux:<\/strong><\/p>\n<p>P\u00e5 Linux beh\u00f6ver vi fortfarande installera libxml2. Kommandot f\u00f6r att installera libxml2 kommer att variera beroende p\u00e5 pakethanteraren och Linux-distributionen vi anv\u00e4nder.<\/p>\n<p><strong>P\u00e5 Fedora:<\/strong><\/p>\n<blockquote>\n<p>$ sudo yum installera libxml2-devel libxslt-devel<\/p>\n<p>$ gem installera nokogiri<\/p>\n<\/blockquote>\n<p><strong>P\u00e5 Ubuntu:<\/strong><\/p>\n<blockquote>\n<p>$ sudo apt-get installera libxml2 libxml2-dev libxslt libxslt-dev<\/p>\n<p>$ gem installera nokogiri<\/p>\n<\/blockquote>\n<p><strong>Komma ig\u00e5ng med Nokogiri:<\/strong><\/p>\n<p>N\u00e4r vi v\u00e4l har installerat Nokogiri kan vi b\u00f6rja anv\u00e4nda det. Nokogiri kan anv\u00e4nda XPath- eller CSS3-v\u00e4ljare. M\u00f6jligheten att anv\u00e4nda CSS-v\u00e4ljare g\u00f6r det till en riktigt bra passform f\u00f6r att extrahera data fr\u00e5n HTML-dokument.<\/p>\n<blockquote>\n<p>kr\u00e4ver &quot;rubygems&quot;<\/p>\n<p>kr\u00e4ver &#039;nokogiri&#039;<\/p>\n<p>kr\u00e4ver &#039;open-uri&#039;<\/p>\n<\/blockquote>\n<p>F\u00f6rutom att kr\u00e4va nokogiri gem vi skulle beh\u00f6va open-uri s\u00e5 att inneh\u00e5llet i en URL l\u00e4tt kan hittas. Vi skapar sedan ett nytt Nokogiri HTML-dokument och skickar det inneh\u00e5llet p\u00e5 s\u00f6kresultatsidan. Med det Nokogiri-dokumentet kan vi sedan anv\u00e4nda at_css och skicka CSS-v\u00e4ljaren &quot;titel&quot; f\u00f6r att h\u00e4mta inneh\u00e5llet i<title> element. Metoden at_css returnerar det f\u00f6rsta matchande elementet och vi kan anropa .text p\u00e5 det elementet f\u00f6r att f\u00e5 dess textinneh\u00e5ll. Slutligen anv\u00e4nder vi puts f\u00f6r att skriva ut texten.&lt;\/html&gt;<\/p>\n<p><strong>Grundl\u00e4ggande analys:<\/strong><\/p>\n<p>Nokogiri l\u00e5ter dig analysera ett HTML- eller XML-dokument med n\u00e5gra olika strategier:<\/p>\n<ul>\n<li>DOM<\/li>\n<li>SAX<\/li>\n<li>L\u00e4sare<\/li>\n<li>Dra<\/li>\n<\/ul>\n<p>Var och en av dessa strategier har olika f\u00f6rdelar och nackdelar. DOM-gr\u00e4nssnittet \u00e4r det vanligaste och anses allm\u00e4nt vara det enklaste att anv\u00e4nda.<\/p>\n<p>Varje produkt som \u00e4r den sista artikeln i raden har en annan klass:<\/p>\n<blockquote>\n<p>&lt;div class=&quot;&rdquo;product&quot; lastcol&rdquo;&gt;<br>&lt;a href=&quot;\/sv\/&rdquo;\/product\/f05f\/&rdquo;\/&quot; class=&quot;&rdquo;product_link&rdquo;&quot;&gt;<br>&lt;img<br>src=&quot;\/images\/dot_clear.gif&quot;<br>title=\u201dF\u00f6rst\u00f6r s\u00f6mnen med detta kraftfulla energiskott \u2013 i en \u00e5teranv\u00e4ndbar hagelgev\u00e4rsflaska.\u201d<br>alt=&quot;Zombie Blast Energy Shots 3-pack&quot;<br>width=&quot;125&quot;<br>h\u00f6jd=\u201d125\u2033<br>class=\u201dlat\u201d<br>data-original=\u201dhttp:\/\/a.tgcdn.net\/images\/products\/thumb\/largesquare\/f05f_zombie_blast_energy_shots.jpg\u201d<br>\/&gt;<br>&lt;h4&gt;Zombie Blast Energy Shots 3-pack&lt;\/h4&gt;<br>&lt;\/a&gt;<br>&lt;p&gt;$9.99&lt;\/p&gt;<br>&lt;\/div&gt;.<\/p>\n<\/blockquote>\n<p>Detta betyder att f\u00f6r att f\u00e5 namnet p\u00e5 produkterna skulle vi s\u00e4ga:<\/p>\n<p><strong>Engelsk:&nbsp;<\/strong>B\u00f6rja i roten av dokumentet: titta i varje div som har ett klassnamn som inneh\u00e5ller ordet &#039;produkt&#039;. D\u00e4r hittar du en l\u00e4nk. I den l\u00e4nken hittar du h4-text.<\/p>\n<p><strong>XPath:<\/strong> \/\/div[inneh\u00e5ller(@klass,&#039;produkt&#039;)]\/a\/h4<\/p>\n<p>XPath-likhetsoperatorn matchar bara fullst\u00e4ndiga v\u00e4rden, i det h\u00e4r fallet en str\u00e4ng. XPath matchar bara hela klassnamn s\u00e5 div[@class=&#039;product&#039;] i Xpath skulle inte fungera f\u00f6r att f\u00e5 den sista kolumnen som du kan f\u00f6rv\u00e4nta dig.<\/p>\n<p><strong>Referens:<\/strong><\/p>\n<p><a href=\"https:\/\/github.com\/sparklemotion\/nokogiri\" target=\"_blank\">https:\/\/github.com\/sparklemotion\/nokogiri<\/a><br><\/p>\n<p><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7fc30299 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7fc30299\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-51885040\" data-id=\"51885040\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6ea8ff86 elementor-widget elementor-widget-heading\" data-id=\"6ea8ff86\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Prenumerera f\u00f6r de senaste uppdateringarna<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5ba6176f elementor-widget elementor-widget-shortcode\" data-id=\"5ba6176f\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t\t\t\t<script type=\"text\/javascript\">\n\t\t\t\t\t\tvar gCaptchaSibWidget;\n                        var onloadSibCallbackInvisible = function () {\n\n                            var element = document.getElementsByClassName('sib-default-btn');\n                            var countInvisible = 0;\n                            var indexArray = [];\n                            jQuery('.sib-default-btn').each(function (index, el) {\n                                if ((jQuery(el).attr('id') == \"invisible\")) {\n                                    indexArray[countInvisible] = index;\n                                    countInvisible++\n                                }\n                            });\n\n                            jQuery('.invi-recaptcha').each(function (index, el) {\n                                grecaptcha.render(element[indexArray[index]], {\n                                    'sitekey': jQuery(el).attr('data-sitekey'),\n                                    'callback': sibVerifyCallback,\n                                });\n                            });\n                        };\n\t\t\t\t\t<\/script>\n\t\t\t\t\t                <script src=\"https:\/\/www.google.com\/recaptcha\/api.js?onload=onloadSibCallbackInvisible&render=explicit\" async defer><\/script>\n\t\t\t\t\n\t\t\t<form id=\"sib_signup_form_1\" method=\"post\" class=\"sib_signup_form\" action=\"\">\n\t\t\t\t<div class=\"sib_loader\" style=\"display:none;\"><img\n\t\t\t\t\t\t\tsrc=\"https:\/\/www.railscarma.com\/wp-includes\/images\/spinner.gif\" alt=\"lastare\"><\/div>\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_action\" value=\"subscribe_form_submit\">\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_id\" value=\"1\">\n                <input type=\"hidden\" name=\"sib_form_alert_notice\" value=\"Please fill out this field\">\n                <input type=\"hidden\" name=\"sib_form_invalid_email_notice\" value=\"Your email address is invalid\">\n                <input type=\"hidden\" name=\"sib_security\" value=\"d7f7626ab9\">\n\t\t\t\t<div class=\"sib_signup_box_inside_1\">\n\t\t\t\t\t<div style=\"\/*display:none*\/\" class=\"sib_msg_disp\">\n\t\t\t\t\t<\/div>\n                                            <div id=\"sib_captcha_invisible\" class=\"invi-recaptcha\" data-sitekey=\"6LdikOAaAAAAAJ6SWrrKVQrtw7TQpQAEnv0HS0G3\"><\/div>\n                    \t\t\t\t\t<p class=\"sib-email-area\">\r\n    <label class=\"sib-email-area\"><\/label>\r\n    <input type=\"email\" class=\"sib-email-area\" name=\"email\" required=\"required\" placeholder=\"E-postadress\">\r\n<\/p>\r\n<p class=\"sib-NAME-area\">\r\n    <label class=\"sib-NAME-area\"><\/label>\r\n    <input type=\"text\" class=\"sib-NAME-area\" name=\"NAME\" placeholder=\"namn\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"Prenumerera\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"sv\"\/><\/form>\n\t\t\t<style>\n\t\t\t\tform#sib_signup_form_1 p.sib-alert-message {\n    padding: 6px 12px;\n    margin-bottom: 20px;\n    border: 1px solid transparent;\n    border-radius: 4px;\n    -webkit-box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n}\nform#sib_signup_form_1 p.sib-alert-message-error {\n    background-color: #f2dede;\n    border-color: #ebccd1;\n    color: #a94442;\n}\nform#sib_signup_form_1 p.sib-alert-message-success {\n    background-color: #dff0d8;\n    border-color: #d6e9c6;\n    color: #3c763d;\n}\nform#sib_signup_form_1 p.sib-alert-message-warning {\n    background-color: #fcf8e3;\n    border-color: #faebcc;\n    color: #8a6d3b;\n}\n\t\t\t<\/style>\n\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t  <div class=\"related-post slider\">\r\n        <div class=\"headline\">relaterade inl\u00e4gg<\/div>\r\n    <div class=\"post-list owl-carousel\">\r\n\r\n            <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Kaminari Gem\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/kaminari-parla\/?related_post_from=37277\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"kaminari p\u00e4rla\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Kaminari Gem\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/kaminari-parla\/?related_post_from=37277\">\r\n        Kaminari Gem  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Varf\u00f6r anst\u00e4lla Ruby on Rails-utvecklare 2026?\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/ror\/varfor-anlita-utvecklare-av-ruby-on-rails\/?related_post_from=30627\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"varf\u00f6r anlita utvecklare av ruby on rails 2022\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Varf\u00f6r anst\u00e4lla Ruby on Rails-utvecklare 2026?\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/ror\/varfor-anlita-utvecklare-av-ruby-on-rails\/?related_post_from=30627\">\r\n        Varf\u00f6r anst\u00e4lla Ruby on Rails-utvecklare 2026?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Betydelsen av mjukvaruarkitektur vid utveckling av f\u00f6retagsmjukvara\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/ror\/vikten-av-mjukvaruarkitektur-i-foretagsutveckling-av-programvara\/?related_post_from=36250\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"Betydelsen av mjukvaruarkitektur vid utveckling av f\u00f6retagsmjukvara\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Betydelsen av mjukvaruarkitektur vid utveckling av f\u00f6retagsmjukvara\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/ror\/vikten-av-mjukvaruarkitektur-i-foretagsutveckling-av-programvara\/?related_post_from=36250\">\r\n        Betydelsen av mjukvaruarkitektur vid utveckling av f\u00f6retagsmjukvara  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Ruby IDE: De b\u00e4sta IDE:erna f\u00f6r Ruby on Rails Development\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/ror\/ruby-ide-de-basta-ideerna-for-ruby-on-rails-utveckling\/?related_post_from=36125\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"B\u00c4STA ID\u00c9ER F\u00d6R UTVECKLING AV RUBY ON RAIL\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Ruby IDE: De b\u00e4sta IDE:erna f\u00f6r Ruby on Rails Development\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/ror\/ruby-ide-de-basta-ideerna-for-ruby-on-rails-utveckling\/?related_post_from=36125\">\r\n        Ruby IDE: De b\u00e4sta IDE:erna f\u00f6r Ruby on Rails Development  <\/a>\r\n\r\n        <\/div>\r\n      \r\n  <\/div>\r\n\r\n  <script>\r\n      <\/script>\r\n  <style>\r\n    .related-post {}\r\n\r\n    .related-post .post-list {\r\n      text-align: left;\r\n          }\r\n\r\n    .related-post .post-list .item {\r\n      margin: 10px;\r\n      padding: 10px;\r\n          }\r\n\r\n    .related-post .headline {\r\n      font-size: 14px !important;\r\n      color: #999999 !important;\r\n          }\r\n\r\n    .related-post .post-list .item .post_thumb {\r\n      max-height: 220px;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n          }\r\n\r\n    .related-post .post-list .item .post_title {\r\n      font-size: 14px;\r\n      color: #000000;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .post-list .item .post_excerpt {\r\n      font-size: 12px;\r\n      color: #3f3f3f;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .owl-dots .owl-dot {\r\n          }\r\n\r\n      <\/style>\r\n      <script>\r\n      jQuery(document).ready(function($) {\r\n        $(\".related-post .post-list\").owlCarousel({\r\n          items: 2,\r\n          responsiveClass: true,\r\n          responsive: {\r\n            0: {\r\n              items: 1,\r\n            },\r\n            768: {\r\n              items: 2,\r\n            },\r\n            1200: {\r\n              items: 2,\r\n            }\r\n          },\r\n                      rewind: true,\r\n                                loop: true,\r\n                                center: false,\r\n                                autoplay: true,\r\n            autoplayHoverPause: true,\r\n                                nav: true,\r\n            navSpeed: 1000,\r\n            navText: ['<i class=\"fas fa-chevron-left\"><\/i>', '<i class=\"fas fa-chevron-right\"><\/i>'],\r\n                                dots: false,\r\n            dotsSpeed: 1200,\r\n                                                    rtl: false,\r\n          \r\n        });\r\n      });\r\n    <\/script>\r\n  <\/div>","protected":false},"excerpt":{"rendered":"<p>V\u00e4rlden snurrar allt snabbare och denna acceleration \u00e4r tydlig i alla aspekter av v\u00e5ra liv. Speciellt n\u00e4r det g\u00e4ller f\u00f6retag \u00e4r det hastigheten som \u00e4r viktigast. I denna frenetiska acceleration \u00e4r volatilitet den enda konstanten. F\u00f6r att h\u00e5lla j\u00e4mna steg med tempot och f\u00f6r att ligga steget f\u00f6re den allt h\u00e5rdare konkurrensen m\u00e5ste ...<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/ruby-regex-match-guide-with-examples\/\"> <span class=\"screen-reader-text\">Ruby Regex Match Guide (2026) med exempel<\/span> L\u00e4s mer \u00bb<\/a><\/p>","protected":false},"author":1,"featured_media":31964,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[384],"tags":[654,656],"class_list":["post-7611","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-articles","tag-nokogiri","tag-nokogiri-gem"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Learning the Fundamentals of Nokogiri Gem - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development<\/title>\n<meta name=\"description\" content=\"The world is spinning faster and faster and this acceleration is evident in all facets of our lives. Especially when it comes to businesses, the premium\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/lara-dig-grunderna-i-nokogiri-gem\/\" \/>\n<meta property=\"og:locale\" content=\"sv_SE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Learning the Fundamentals of Nokogiri Gem - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"og:description\" content=\"The world is spinning faster and faster and this acceleration is evident in all facets of our lives. Especially when it comes to businesses, the premium\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/lara-dig-grunderna-i-nokogiri-gem\/\" \/>\n<meta property=\"og:site_name\" content=\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RailsCarma\/\" \/>\n<meta property=\"article:published_time\" content=\"2016-01-22T17:40:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-08-30T09:02:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/nokogiri.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@railscarma\" \/>\n<meta name=\"twitter:site\" content=\"@railscarma\" \/>\n<meta name=\"twitter:label1\" content=\"Skriven av\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Ber\u00e4knad l\u00e4stid\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minuter\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\"},\"headline\":\"Learning the Fundamentals of Nokogiri Gem\",\"datePublished\":\"2016-01-22T17:40:24+00:00\",\"dateModified\":\"2022-08-30T09:02:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/\"},\"wordCount\":642,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/nokogiri.png\",\"keywords\":[\"nokogiri\",\"nokogiri gem\"],\"articleSection\":[\"Technical Articles\"],\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/\",\"url\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/\",\"name\":\"Learning the Fundamentals of Nokogiri Gem - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/nokogiri.png\",\"datePublished\":\"2016-01-22T17:40:24+00:00\",\"dateModified\":\"2022-08-30T09:02:48+00:00\",\"description\":\"The world is spinning faster and faster and this acceleration is evident in all facets of our lives. Especially when it comes to businesses, the premium\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/#breadcrumb\"},\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/nokogiri.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/nokogiri.png\",\"width\":800,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Learning the Fundamentals of Nokogiri Gem\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.railscarma.com\/#website\",\"url\":\"https:\/\/www.railscarma.com\/\",\"name\":\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"description\":\"RailsCarma is a Ruby on Rails Development Company in Bangalore. We specialize in Offshore Ruby on Rails Development based out in USA and India. Hire experienced Ruby on Rails developers for the ultimate Web Experience.\",\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.railscarma.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"sv-SE\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"width\":200,\"height\":46,\"caption\":\"RailsCarma\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/RailsCarma\/\",\"https:\/\/x.com\/railscarma\",\"https:\/\/www.linkedin.com\/company\/railscarma\/\",\"https:\/\/myspace.com\/railscarma\",\"https:\/\/in.pinterest.com\/railscarma\/\",\"https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"L\u00e4r dig grunderna i Nokogiri Gem - RailsCarma - Ruby on Rails Development Company specialiserat p\u00e5 offshoreutveckling","description":"V\u00e4rlden snurrar snabbare och snabbare och denna acceleration \u00e4r tydlig i alla aspekter av v\u00e5ra liv. S\u00e4rskilt n\u00e4r det kommer till f\u00f6retag, premien","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/lara-dig-grunderna-i-nokogiri-gem\/","og_locale":"sv_SE","og_type":"article","og_title":"Learning the Fundamentals of Nokogiri Gem - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","og_description":"The world is spinning faster and faster and this acceleration is evident in all facets of our lives. Especially when it comes to businesses, the premium","og_url":"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/lara-dig-grunderna-i-nokogiri-gem\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2016-01-22T17:40:24+00:00","article_modified_time":"2022-08-30T09:02:48+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/nokogiri.png","type":"image\/png"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@railscarma","twitter_site":"@railscarma","twitter_misc":{"Skriven av":"admin","Ber\u00e4knad l\u00e4stid":"3 minuter"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/"},"author":{"name":"admin","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21"},"headline":"Learning the Fundamentals of Nokogiri Gem","datePublished":"2016-01-22T17:40:24+00:00","dateModified":"2022-08-30T09:02:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/"},"wordCount":642,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/nokogiri.png","keywords":["nokogiri","nokogiri gem"],"articleSection":["Technical Articles"],"inLanguage":"sv-SE","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/","url":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/","name":"L\u00e4r dig grunderna i Nokogiri Gem - RailsCarma - Ruby on Rails Development Company specialiserat p\u00e5 offshoreutveckling","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/nokogiri.png","datePublished":"2016-01-22T17:40:24+00:00","dateModified":"2022-08-30T09:02:48+00:00","description":"V\u00e4rlden snurrar snabbare och snabbare och denna acceleration \u00e4r tydlig i alla aspekter av v\u00e5ra liv. S\u00e4rskilt n\u00e4r det kommer till f\u00f6retag, premien","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/#breadcrumb"},"inLanguage":"sv-SE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/"]}]},{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/nokogiri.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/nokogiri.png","width":800,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/erlernen-der-grundlagen-von-nokogiri-gem\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"Learning the Fundamentals of Nokogiri Gem"}]},{"@type":"WebSite","@id":"https:\/\/www.railscarma.com\/#website","url":"https:\/\/www.railscarma.com\/","name":"RailsCarma - Ruby on Rails Development Company specialiserat p\u00e5 Offshore Development","description":"RailsCarma \u00e4r ett Ruby on Rails Development Company i Bangalore. Vi \u00e4r specialiserade p\u00e5 Offshore Ruby on Rails Development baserat i USA och Indien. Anst\u00e4ll erfarna Ruby on Rails-utvecklare f\u00f6r den ultimata webbupplevelsen.","publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.railscarma.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"sv-SE"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"RailsCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","width":200,"height":46,"caption":"RailsCarma"},"image":{"@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RailsCarma\/","https:\/\/x.com\/railscarma","https:\/\/www.linkedin.com\/company\/railscarma\/","https:\/\/myspace.com\/railscarma","https:\/\/in.pinterest.com\/railscarma\/","https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg"]},{"@type":"Person","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21","name":"administration","image":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/"]}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/posts\/7611","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/comments?post=7611"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/posts\/7611\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/media\/31964"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/media?parent=7611"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/categories?post=7611"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/tags?post=7611"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}