2010-07-14 7 views
1

다음과 같은 펄 스크립트 (아래 표시) 다음과 같은 XML 파일 하지만 XML은 문제가펄 + foreach 루프에서 씹는를 사용하는 방법

인쇄 불필요한 "& # 10"문자 TEST 단어 후

때문에
<ROOT> 
    <FILE Name="TEST1&#10;"/> 
    <FILE Name="TEST2&#10;"/> 
    <FILE Name="TEST&#10;"/>ar 
</ROOT> 

나는 생각 "& # 10"문자 그것 LINEBREAK (백틱 연산자 @myNames으로 명령의 출력을 읽을는) 내 XML에서 "& # 10"기존의이 문제가 될 수 있다는 것 때문에 chomp 명령을 해결했습니다

내 질문 : 어떤 방법으로 문제를/var에 아래

내 펄 스크립트

#!/usr/bin/perl 

use warnings; 
use XML::LibXML; 


my $doc = XML::LibXML::Document->new; 
my $root = $doc->createElement('ROOT'); 
$doc->setDocumentElement($root); 


my @myNames=` ls /var/tmp | grep FILE.xml | sed "s/.FILE.*//" `; 

foreach (@myNames) { 

my $objVar = $doc->createElement('FILE'); 
$root->appendChild($objVar); 
$objVar->setAttribute('Name' , $_); 

} 


my @lines = split /\n/, $doc->toString(1); 
shift @lines; 

foreach (@lines) { 

print "$_\n"; 
} 

파일을 해결하기 위해 내 스크립트에 씹는 명령을 추가 할 필요가/tmp를

TEST1-FILE.xml 
    TEST2-FILE.xml 
    TEST-FILE.xml 

답변

5

파일 이름 목록을 얻은 직후에 사용하십시오.

my @myNames=` ls /var/tmp | grep FILE.xml | sed "s/.FILE.*//" `; 
chomp(@myNames); 
... 
+0

그것의 OK 지금 많은 많은 thx yael – yael

+0

@yael : 그것이 당신을 위해 일했다면, 왜 대답을 upvote하지 않습니까? 나는 네가 64 가지 질문을하고 하나의 영혼을 upvoted 않은 것을 본다. (중단 된 마지막 이메일을 다시 읽으십시오.) – Ether

+0

나는 이미 투표했습니다, – yael

관련 문제