本帖最后由 523066680 于 2019-5-23 11:46 编辑
- use Mojo::DOM;
- use File::Slurp;
- my $xml = read_file( "test.xml" );
- my $dom = Mojo::DOM->new->xml(1)->parse( $xml );
- my @code = ('A' .. 'ZZZ');
-
- for my $e ( $dom->find("Variable")->each ) {
- my $k = $e->attr("name");
- $h{$k} = $code[$id++] unless (exists $h{$k});
- $e->attr("name" => $h{$k} );
- }
-
- for my $e ( $dom->find("Text")->each ) {
- my $exp = $e->attr("textExp");
- $exp =~s/([\@\#])([\w\_]+)/$1$h{$2}/g;
- $e->attr("textExp"=>$exp);
- }
-
- printf "%s\n", $dom;
复制代码
- <Variable column="city_id" name="A" type="string" />
- <Variable column="city_name" name="B" type="string" />
- <Variable column="weather_type" name="C" type="int" />
- <Variable column="city_id" name="A" type="string" />
-
- <Text alignV="center" color="#ababab" marqueeGap="2" marqueeSpeed="50" name="Qm" size="30" textExp="@A" w="458" x="100" y="300" />
- <Text alignV="center" color="#ababab" marqueeGap="2" marqueeSpeed="50" name="QW" size="30" textExp="#B" w="458" x="100" y="300" />
- <Text alignV="center" color="#ababab" marqueeGap="2" marqueeSpeed="50" name="QA" size="30" textExp="#C+#A" w="458" x="100" y="300" />
复制代码
|