2012-12-11 64 views
0

我以编程方式编辑XML Starlet的xml文件。我有下面的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

想通了,我实际上有一个XPath问题!

xml ed -s "(/manifest/application/activity/intent-filter)[2]" -t elem -n action -v "" manifest.xml 

如果实现这个动作的另一个典型方式虽然请插入内容。