尝试更改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 ;