我們的應用程序在接收端對XML數據進行復制分析。我們的應用程序沒有可用的Java或.NET,但在Unix中運行,因此它具有awk和Perl。從xml中刪除xml聲明使用perl或awk的數據
文件中的XML消息包含:
<?xml version="1.0" encoding="ISO-8859-1" ?>
我嘗試了一些選項在Perl和awk,讓他們刪除,但不能讓這些工作:
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聲明對於解析器非常有用,並且嘗試用除解析器之外的任何其他任何東西來處理任何重要的XML將導致瘋狂。而且,如果你使用的是Unix,那麼你可以使用各種語言,如果你安裝它們的話。 –
查看「[如何使用awk,Perl或Python挖掘XML文檔?](http://stackoverflow.com/a/909076/128421)」以獲取相關答案。 –
你的Perl代碼不工作,因爲'?'是一個正則表達式元字符。在每種情況下用'.'或'\?'替換'?',你應該沒問題。 –