Rubyでヒアドキュメントを使って、変数textにHTML文を代入する。
代入するHTML文の中には式展開で変数iを埋め込み、変数iが展開された状態で、変数textに代入するようにする。
ヒアドキュメントの基本構成
変数代入時に<<識別子~識別子と記載する。
識別子で挟まれた部分が変数に代入される。
識別子は文字列であれば何でもよい。
ヒアドキュメントじゃないと、改行や、"などを/n、\"と表現する必要があり、たくさんある場合に大変。
ヒアドキュメントを使うとその必要がなくなり、そのままの内容を記載すればよいので便利。
変数 = <<'識別子' 内容 識別子
サンプルコード
text = <<'EOS' これは テスト コードです。 EOS puts text
結果
これは テスト コードです。
識別子をEOSにしたけど、EOSの部分は識別子同士が同じであれば何でもよい。
以下でもOK。
まあ代入する文字列の中に識別子が出てきてしまうとだめなので、EOSにしておくのが無難。
text = <<'AAA' これは テスト コードです。 AAA
ヒアドキュメント内に変数を埋め込んでみる。
i= 3
text = <<'EOS'
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Test</title>
</head>
<body>
<h1>1-1<h1>
<a href="file:///D:/rubyproject/data/selenium/link-text/1.html">1-#{i}-1です。
</a><br>
<a href="file:///D:/rubyproject/data/selenium/link-text/1.html">1-#{i}-2です。
</a><br>
<a href="file:///D:/rubyproject/data/selenium/link-text/1.html">1-#{i}-3です。
</a><br>
<a href="file:///D:/rubyproject/data/selenium/link-text/1.html">1-#{i}-4です。
</a><br>
</body>
</html>
EOS
puts text
結果
変数が展開されずにそのまま表示された。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Selenium Test</title>
</head>
<body>
<h1>1-1<h1>
<a href="file:///D:/rubyproject/data/selenium/link-text/1.html">1-#{i}-1です。
</a><br>
<a href="file:///D:/rubyproject/data/selenium/link-text/1.html">1-#{i}-2です。
</a><br>
<a href="file:///D:/rubyproject/data/selenium/link-text/1.html">1-#{i}-3です。
</a><br>
<a href="file:///D:/rubyproject/data/selenium/link-text/1.html">1-#{i}-4です。
</a><br>
</body>
</html>
これを解決するには、
識別子を""(ダブルコーテーション)で挟む
””で挟んだコード
i= 3
text = <<"EOS"
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Selenium Test</title>
</head>
<body>
<h1>1-1<h1>
<a href="file:///D:/rubyproject/data/selenium/link-text/1.html">1-#{i}-1です。
</a><br>
<a href="file:///D:/rubyproject/data/selenium/link-text/1.html">1-#{i}-2です。
</a><br>
<a href="file:///D:/rubyproject/data/selenium/link-text/1.html">1-#{i}-3です。
</a><br>
<a href="file:///D:/rubyproject/data/selenium/link-text/1.html">1-#{i}-4です。
</a><br>
</body>
</html>
EOS
puts text
結果
無事変数iが3に展開された!!やった
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Selenium Test</title>
</head>
<body>
<h1>1-1<h1>
<a href="file:///D:/rubyproject/data/selenium/link-text/1.html">1-3-1です。
</a><br>
<a href="file:///D:/rubyproject/data/selenium/link-text/1.html">1-3-2です。
</a><br>
<a href="file:///D:/rubyproject/data/selenium/link-text/1.html">1-3-3です。
</a><br>
<a href="file:///D:/rubyproject/data/selenium/link-text/1.html">1-3-4です。
</a><br>
</body>
</html>