+ -
当前位置:首页 → 问答吧 → 如何删除一个xml文件的特定节点?

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

时间:2011-11-03

来源:互联网

我有一个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

作者: 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>

作者: lcllcl987   发布时间: 2011-11-03

有人能回应一下吗

作者: lcllcl987   发布时间: 2011-11-03

xmlUnlinkNode (xmlNodePtr cur);

可以遍历下XML的各个子节点。然后再挨个删除。

作者: jufeng2309   发布时间: 2011-11-03

相关阅读 更多