为了解析无效的XML文件,具有或者未编码,非法字符(在我的情况&符号):桑达/ awk脚本以纠正XML(符号)非法字符
<url>http://example.com?param1=bad¶m2=ampersand</url>
和编码的人
<description> The good, the bad & the ugly </description>
请发布一个可以编码非法字符的sed/awk脚本示例。
为了解析无效的XML文件,具有或者未编码,非法字符(在我的情况&符号):桑达/ awk脚本以纠正XML(符号)非法字符
<url>http://example.com?param1=bad¶m2=ampersand</url>
和编码的人
<description> The good, the bad & the ugly </description>
请发布一个可以编码非法字符的sed/awk脚本示例。
tidy -m -xml <your-xml-file>
什么包提供'tidy'? – 2017-08-03 18:59:57
@AlexejMagura http://www.html-tidy.org/ – Tomalak 2017-08-03 20:39:27
完全未经测试,但您可以通过将所有有效的转换回其原始形式作弊,然后再次进行转换。
例如,如果你只需要担心&符号,你可以做类似的东西:
sed 's/&/&/g' | sed 's/&/&/g'
当然,你可以做到这一点有很多清洁和他们的将是更好的解决方案,但有些休息正在呼唤我,我相信你可以从这里解决问题。
这可能不会完成你的想法。在sed手册页中:“替换[s ///命令] 中出现的&符号(&)将被替换为与RE匹配的字符串。在此上下文中,&的特殊含义可以通过前面的通过反斜杠。“ - 所以'/ & /&/ g'实际上什么都不会改变。你的意思是'/ &/\&/ g'? – 2010-09-02 16:59:42
为什么XML生成器首先生成无效的XML? – 2010-09-02 11:18:44
它不是由我生成的,我只解析了返回无效XML的外部服务。由于XML非常大(几十MB),我可以将它保存在磁盘上并进行准备。 – 2010-09-02 12:14:11