搜索/解析XML并排除某些节点而不删除它们?

时间:2019-02-28 12:49:59

标签: ruby xml nokogiri

下面的命令允许我解析所有节点(“ wp14:sizeRelH”和“ wp14:sizeRelV”除外)中的文本

XML.search('//wp14:sizeRelH', '//wp14:sizeRelV').remove.search('//text()')

我想做同样的事情,但是我不想从XML中删除节点'wp14:sizeRelH'和'wp14:sizeRelV'。

这样,我可以解析XML树并更改每个节点中的文本,而不会影响节点'wp14:sizeRelH'和'wp14:sizeRelV'

编辑:如果节点'// wp14:sizeRelH'或'// wp14:sizeRelV'不在XML中,那么我的命令也不会返回任何不好的结果:(

1 个答案:

答案 0 :(得分:0)

好像我找到了答案。我使用了//text()[not...],但是不得不找到我不想包含的文本的祖先名称:

XML.search('//text()[not(ancestor::wp14:pctHeight or ancestor::wp14:pctWidth or ancestor::wp:posOffset)]')