我们的应用程序在接收端对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代码不工作,因为'?'是一个正则表达式元字符。在每种情况下用'.'或'\?'替换'?',你应该没问题。 –