私の XML ファイルは次のようになります。
<A>
<file>data1</file>
<path>data2</path>
</A>
<B>
<file>data3</file>
<path>data4</path>
</B>
そこで、ログ ファイルからデータを読み取り、解析してA
、 、B
、file
などのタグを取得しますpath
。現在、for ループを使用して外側の各タグを反復処理し、各サブ タグと比較して、データが XML ファイルに存在するかどうかを確認しています。
$data = $xml->XMLin("xmlfile");
foreach $e ( $data->{$outerTag} ) # outertag could be A, B
{
if( $e->{file} eq $fname ) { do_something } else { return 0; }
if( $e->{path} eq $pname ) { do_something } else { return 0; }
}
ループを使用する必要がない方法はありfor
ますか? 私はこのようなことができるとしましょう(私はこれを作っています):
if( $data->{$outerTag}->{$fname} ) { do_something } else { return 0; }