XML 데이터의 역 분석을 수행하는 애플리케이션이 수신 측에 있습니다. 우리의 응용 프로그램은 Java 또는 .NET을 사용할 수 없지만 Unix에서 실행되므로 awk와 Perl을 사용합니다. perl 또는 awk를 사용하여 xml 데이터에서 xml 선언을 제거합니다.
<?xml version="1.0" encoding="ISO-8859-1" ?>
내가 Perl로 몇 가지 옵션을 시도하고 제거 얻을 AWK, 그러나이 동작하지 않습니다 수 :
파일의 XML 메시지
는 포함perl -p -i -e "s/<?xml version="1.0" encoding="ISO-8859-1" ?>//g" inputFile
perl -p -i -e "s/<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>//g" inputFile
perl -p -i -e "s/<\?xml version="1.0" encoding="ISO-8859-1" \?>//g" inputFile
하나를 PERL 또는 AWK를 사용하여이 작업을 수행 할 수있는 다른 옵션은 무엇입니까?
XML을 "수신"할 때 XML 구문 분석기를 사용하고 있습니까? XML 선언은 파서 (parser)에 유용하며 파서 (parser)가 아닌 중요한 XML을 처리하려고하면 광기가 발생합니다. 그리고 유닉스를 사용하고 있다면 설치 한 모든 종류의 언어를 사용할 수 있습니다. –
관련 답변을 보려면 "[awk, Perl 또는 Python으로 XML 문서를 마이닝 할 수 있습니까?] (http://stackoverflow.com/a/909076/128421)"를 참조하십시오. –
'? '는 정규식 메타 문자이기 때문에 펄 코드가 작동하지 않습니다. 각각의 경우'?'또는'\? '로'?'를 대체하면 OK입니다. –