鑒于以下 XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response xmlns="...">
<root>
<test>abc</test>
</root>
</response>
我需要為每個元素添加一個命名空間,如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns:response xmlns:ns="...">
<ns:root>
<ns:test>abc</ns:test>
</ns:root>
</ns:response>
有可能sed嗎?我知道sed這不是處理 XML 的最佳工具...
可能有嵌套節點,但沒有人已經擁有命名空間。最后,沒有屬性。
uj5u.com熱心網友回復:
對需求進行如此簡單的描述,您只能做更多的事情:
sed 's!</\|<!&ns:!g' your_file
編碼
- 用途
!作為分隔符,所以/不需要進行轉義; - 搜索字串匹配
</或<通過交替\|; - 替換由匹配的棋子本身組成
&,后跟ns:; - 所有這些都是通過
g.
在評論中,您說您想跳過以 開頭的行上的提交<?xml,但更改s命令只會使其更長且可讀性更低。
由于該行始終且僅是第一行,因此您可以通過2,$在s命令前面添加來定位除第一行之外的所有行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/316686.html
上一篇:使用屬性決議SQL中的XML資料
