以下は単純化されたサンプル xml です。
<book_reviewers>
<results>
<reviewer>
<name>Anne</name>
<profession>Catfish wrangler</profession>
</reviewer>
<reviewer>
<name>Bob</name>
<profession>Beer taster</profession>
</reviewer>
<reviewer>
<name>Charlie</name>
<profession>Gardener</profession>
</reviewer>
<reviewer>
<name>Don</name>
<profession>DoGooder</profession>
</reviewer>
<reviewer>
<name>Ellie</name>
<profession>Elephant Trainer</profession>
</reviewer>
<reviewer>
<name>Freddy</name>
<profession>Fencer</profession>
</reviewer>
</results>
</book_reviewers>
それらは私がデータを解析します
#!/usr/bin/perl
use XML::LibXML;
use strict;
my $filename = "cr.xml";
my $parser = XML::LibXML->new();
my $critic_details = $parser->parse_file("$filename") or die;
今、ランダムなレビュアーの詳細を取得したい
my $no_of_critics = ($critic_details->findvalue("count(/book_reviewers/results/reviewer)"));
1 と $no_of_critics の間の乱数を返すサブルーチンに番号 1 と $no_of_critics を送ります (つまり、この場合は 1 と 6)。
これはすべて正常に動作します。どのレビュアーにどのように伝えるかを知る必要があるだけです。たとえば、5 を返すとしたら、レビュアーの 5 番目のオカレンスが必要であるとどのように伝えればよいでしょうか? 検索してみましたが、正しい検索用語が得られず、少し行き詰まっています
乾杯