sed-在特定的Parent标记下替换XML中的Child标记值



尝试更改Child标记的值"部分";从8005到8008;类";。

儿童标签";部分";在多个Parent下使用,因此需要引用Parent来指定要更改的Child标记。

我简化了Init_48.xml文件,使其只包含一个Parent。

如果我没有在sed命令中引用Parent,那么更改是成功的。

有人知道为什么在引用Parent标记时更改不成功,并为解决方案提供替代代码吗?

请在sed with results链接中查看包含sed命令和结果的附带图像。

为什么更改不成功?

父标记与子标记用换行符分隔空间。不起作用的正则表达式显示它们是相邻的,没有任何内容他们之间。

为解决方案提供替代代码

使用支持XML的工具来处理XML。例如,在xsh(我碰巧维护的基于XML::LibXML的工具(中,您可以使用来实现您的目标

open file.xml ;
for //Class/Part[.=8005] set . 8008 ;
save :b ;

最新更新