Sed / awk 脚本纠正 XML 中的非法字符(& 符号)
为了解析无效的 XML 文件,具有未编码的非法字符(在我的例子中为&符号):
<url>http://example.com?param1=bad¶m2=ampersand</url>
和编码的字符
<description> The good, the bad & the ugly </description>
请发布一个带有 sed/awk 脚本的示例,该脚本可以对非法字符进行编码。
For parsing an invalid XML file, having either unencoded, illegal characters (ampersands in my case):
<url>http://example.com?param1=bad¶m2=ampersand</url>
and encoded ones
<description> The good, the bad & the ugly </description>
Please post an example with a sed/awk script that can encode the illegal characters.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
完全未经测试,但您可以通过将所有有效的转换回原始形式然后再次转换回来来作弊。
例如,如果您只需要担心 & 符号,您可以执行类似以下操作:
sed 's/&/&/g' | sed 's/&/&/g'
当然,你可以做得更干净,他们将是更好的解决方案,但有些休息正在打电话给我,我相信你可以工作从这里出去。
Completely untested, but you could cheat by converting all the valid ones back to their original form then doing the conversion back again.
For example, if you only had to worry about ampersands, you could do something similar to:
sed 's/&/&/g' | sed 's/&/&/g'
Of course, you can do it a lot cleaner and their will be better solutions, but some rest is calling me and I'm sure you can work it out from here.