如何删除一个xml文件的特定节点?

lcllcl987 2011-11-03 10:47:04
我有一个xmltest.xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
<doc>
<language type="en">english1</language>
<language type="cn">
chinese
</language>
<language type="en">english2
</language>
<color>blue</color>
<color>red</color>
<language type="fr">
french </language>
</doc>

如何删除type="en"的language节点,只保留type为“非en”的langgage节点:
我想得到如下结果(两个language节点被删除:cn和fr):
<?xml version="1.0" encoding="utf-8"?>
<doc>
<language type="en">english1</language>
<language type="en">english2
</language>
<color>blue</color>
<color>red</color>
</doc>

我写了一个脚本,但是只能显示“非en”的节点。求助
awk '/<language type="en"/,/<\/language>/{next};1' xmltest.xml
...全文
264 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lcllcl987 2011-11-03
  • 打赏
  • 举报
回复
sorry,上面的表述有问题:
如何把type=en的language保留,只删出”非en“的language节点

我想得到如下结果(两个language节点被删除:cn和fr):
<?xml version="1.0" encoding="utf-8"?>
<doc>
<language type="en">english1</language>
<language type="en">english2
</language>
<color>blue</color>
<color>red</color>
</doc>
jufeng2309 2011-11-03
  • 打赏
  • 举报
回复
xmlUnlinkNode (xmlNodePtr cur);

可以遍历下XML的各个子节点。然后再挨个删除。
lcllcl987 2011-11-03
  • 打赏
  • 举报
回复
有人能回应一下吗

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧