我正在使用XML Starlet以编程方式编辑xml文件。我有以下XML文档:
<manifest>
<application>
<activity>
<intent-filter>
<action/>
<category/>
</intent-filter>
<intent-filter>
</intent-filter>
</activity>
</application>
</manifest>
我正在尝试向第二个<action>
节点添加新的<intent-filter>
标记。如果不在第一个<intent-filter>
无意中创建节点,我该怎么做?
预期产出:
<manifest>
<application>
<activity>
<intent-filter>
<action/>
<category/>
</intent-filter>
<intent-filter>
<action/>
</intent-filter>
</activity>
</application>
</manifest>
我已经查看了文档:http://xmlstar.sourceforge.net/doc/xmlstarlet.txt但是,我似乎缺少这种情况的解决方案。
谢谢!
答案 0 :(得分:0)
想出来,我实际上遇到了XPath问题!
xml ed -s "(/manifest/application/activity/intent-filter)[2]" -t elem -n action -v "" manifest.xml
虽然如果有另一种规范的方式来实现这一行动,请尽快说明。