私は基本的に Java 開発者ですが、クライアントから perl で小さなタスクを与えられました。タスクは、要素を検索してその値を出力する必要があるという点でxml入力を取得することです(値を文字列変数に保存します)。たとえば、以下の xml で FileName タグの値を読み取りたいとします。
<ConnectHome SchemaVersion="1.0.8">
<TransType>0090</TransType>
<Node>
<ExternalFiles>
<FileName>some file name</FileName>
</ExternalFiles>
</Node>
</ConnectHome>
XML:Simple ライブラリを使用して XML を解析しています。また、以下のコードを使用して要素の値を読み取ることもできます。
$xmlSimple = new XML::Simple(KeepRoot => 1);
$dataXML = $xmlSimple->XMLin("RepeatedElement.xml");
my $fileNameValue = $dataXML->{ConnectHome}->{Node}->{ExternalFiles}->{FileName};
しかし、xml でパスが変更される可能性があるため、クライアントは要素名を使用して値を検索したいと考えています。
"FileName"
ハードコーディングされたパスではありません。
私の質問は、ハードコードされたパスではなく、要素の名前で値を取得する方法です。名前で要素を検索する方法はありますか? 要素の名前を文字列変数に渡します。