Sed / awk 脚本纠正 XML 中的非法字符(& 符号)

发布于 2024-09-17 09:13:53 字数 310 浏览 4 评论 0原文

为了解析无效的 XML 文件,具有未编码的非法字符(在我的例子中为&符号):

<url>http://example.com?param1=bad&param2=ampersand</url>

和编码的字符

<description> The good, the bad &amp; 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

脸赞 2024-09-24 09:13:53
tidy -m -xml <your-xml-file>
tidy -m -xml <your-xml-file>
时光礼记 2024-09-24 09:13:53

完全未经测试,但您可以通过将所有有效的转换回原始形式然后再次转换回来来作弊。

例如,如果您只需要担心 & 符号,您可以执行类似以下操作:

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文