2016-12-19 1 views
1

Comment ajouter du délimiteur de tuyau à ma chaîne à partir du code HTML que j'analyse?Comment analyser les fils d'Ariane dans Ruby

HTML:

<div class="container"> 
    <div class="results"> 
    <div class="row"> 
     <div class="col"> 
     <nav class="breadcrumb-nav"> 
      <ol class="breadcrumb"> 
      <li> 
       <a href="/">Home Page</a> 
      </li> 
      <li> 
       <a href="link">Category Name</a> 
      </li> 
      <li> 
       <a href="link">Sub Category Name</a> 
      </li> 
      <li> 
       <a href="link">Another Sub Category Name</a> 
      </li> 
      <li class="highlight"> 
       <a href="link">Current Sub Category Page Name</a> 
      </li> 
      </ol> 
     </nav> 
     </div> 
    </div> 
    </div> 
</div> 

Mon code:

puts page.xpath(".//*[@class='breadcrumb']//a").text 

Affiche:

Accueil PageCategory NameSub Catégorie NameAnother Sous catégorie NameCurrent Sous catégorie Nom de la page

Je l'ai affiché comme

Page d'accueil | Nom de la catégorie | Nom Sous catégorie ...

Répondre

2

Vous devez prendre le texte d'éléments individuels, puis se joindre à votre delimiter:

page.xpath(".//*[@class='breadcrumb']//a").map(&:text).join(' | ') 
+0

ça a marché, merci! – vladz

0

Mieux encore; utilisez CSS pour styliser un délimiteur. L'utilisation de glyphes comme délimiteur est une mauvaise accessibilité.

+0

Ruby est encore très nouveau pour moi et n'a pas codé depuis des années. Souhaitez-vous donner un exemple David? – vladz

+0

Lorsque vous utilisez un «caractère de clavier» pour séparer des éléments, les lecteurs d'écran les lisent à l'utilisateur. Donc, mieux vaut faire quelque chose comme .crumbitem {border-left: 1px solid green;} Ou aussi chic que vous le souhaitez. :) –

+0

Ou consultez Font Awesome. :) –