【发布时间】:2021-10-24 15:30:35
【问题描述】:
目标文件和源文件都是xml类型的文件。
我很难使用sed,因为它不能很好地处理特殊字符,而且那些 xml 中充满了它们。
我研究了awk 有一种方法,这是我的问题,因为我很难使用awk
编辑:
带有标记位置的主xml文件:
<?xml version="1.0" encoding="utf-8"?>
<ip>
<?processing instructions?>
<lista>
<!--> EKOLOGIA +5 <-->
<kategoria nazwa="EKO" thumb="/home/xvision/ip/swf/EKO/eko.png">
</kategoria>
<!-- KONIEC PAKIETU <-->
<!--temp-->
</lista>
</ip>
打算包含在主文件中的文件(第二个 xml):
<!--> PAKIET FUN 50 GIER <-->
<kategoria nazwa="EDU" thumb="/home/xvision/ip/swf/EDU/edu.png">
</kategoria>
最终文件:
<?xml version="1.0" encoding="utf-8"?>
<ip>
<?processing instructions?>
<lista>
<!--> EKOLOGIA +5 <-->
<kategoria nazwa="EKO" thumb="/home/xvision/ip/swf/EKO/eko.png">
</kategoria>
<!-- KONIEC PAKIETU <-->
<!--> PAKIET FUN 50 GIER <-->
<kategoria nazwa="EDU" thumb="/home/xvision/ip/swf/EDU/edu.png">
</kategoria>
</lista>
</ip>
【问题讨论】:
-
一般来说,使用
sed或awk来编辑XML 文件是个坏主意。请改用 XSLT 处理器,例如xsltproc。使用document('')函数创建一个样式表,在正确的位置包含文件。 -
@zx485 我可以包含 bash/sh 脚本吗?
-
@zx485 我发现
xsltproc是一个优雅的解决方案,但我仍然更喜欢awk或sed中的解决方案,因为我还在学习它们
标签: xml awk sed text-processing