2012-12-11 245 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 

如果實現這個動作的另一個典型方式雖然請插入內容。