0

我想检查字符串是否存在于 xml 标签中

和 xml 标签采用以下格式。

<admin var="s_admin">xyz</admin>

我试过了

index($xmlString,$str) != -1

但这对我不起作用。这是我的代码:

my $hostname = hostname;
my $wlsadmin = grep s_wls_admin_host $ENV{CONTEXT_FILE};
$wlsadmin=~s/^\s+|\s+$//g;
if(index($wlsadmin,$hostname) != -1) {
    print("True");
}
print($hostname);
print($wlsadmin);

这是 print 语句的值:

 rws3510357 <wls_admin_host oa_var="s_wls_admin_host">rws3510357</wls_admin_host>
4

1 回答 1

1

正如其他人评论的那样,我不确定您出了什么问题,但这里有一个使用基于 DOM 的 XML 解析器来查找标记并提取其内容的示例。从那里很容易将这些内容与一些字符串进行比较,就像您使用index.

#!/usr/bin/env perl

use strict;
use warnings;

use Mojo::DOM;
my $dom = Mojo::DOM->new(<<'END');
<wls_admin_host oa_var="s_wls_admin_host">rws3510357</wls_admin_host>
END

my $hostname = 'rws3510357';

my $wlsadmin = $dom->at('wls_admin_host')->text;

if (index($wlsadmin, $hostname) != -1 ) {
  print "True\n";
}
于 2012-11-11T15:23:55.797 回答