アプリ版:「スタンプのみでお礼する」機能のリリースについて

宜しくお願いします。

↓のようなxmlファイルがあり、
#########hoge.xml#############
<root>
<a name="a1">
<b>bbb1</b>
<b>bbb2</b>
<b>bbb3</b>
<c>ccc1</c>
</a>
<a>
<b>bbb4</b>
<b>bbb5</b>
</a>
<a name="a3" price="100"></a>
</root>
######################

↓と同じ処理をしたいのですが、
doc = REXML::Document.new(open("hoge.xml"))
doc.elements.each("root/a[@name='a1']/b") do |element|
...
end

a1が変数名の場合、
どのように記述したらよいのでしょうか。
doc = REXML::Document.new(open("hoge.xml"))
attr = a1
doc.elements.each("root/a[@name='????????']/b") do |element|
...
end

基本的な内容で申し訳ありませんが、
宜しくお願いします。

A 回答 (1件)

下記サイトを参考にしてみた感じ、パス部に変数展開で埋め込むだけでよいみたい。



http://d.hatena.ne.jp/aoi_273/20090311/1236764850
「ruby+xml 特定の属性値をもつ要素」の回答画像1
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
やりたいことができました。
doc = REXML::Document.new(open("hoge.xml"))
attr = "a1"
path = "root/a[@name=#{attr}]/b"
doc.elements.each('#{path}') do |element|
...
end

お礼日時:2013/07/08 21:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!