2016-08-11 112 views
0

我有一個非常奇怪的xml文件,需要使用augeas進行更新。如何使用augeas xml導航XML

<root> 
    <node name="Client"> 
     <node name="Attributes"> 
      <info> 
       <test> 
        <entry><key>colour</key><value type="string">blue</value></entry> 
       </test> 
      </info> 
     </node> 
    </node> 
    <node name="Network"> 
     <node name="Server"> 
      <info> 
       <test> 
        <entry><key>transport</key><value type="string">internet</value></entry> 
        <entry><key>ipAddr</key><value type="string">125.125.125.142</value></entry> 
        <entry><key>portNo</key><value type="string">1234</value></entry> 
        <entry><key>protocolType</key><value type="string">tcp</value></entry> 
       </test> 
      </info> 
     </node> 
    </node> 
</root> 

我需要更新包含文本ipAddr的元素「key」後面的元素「value」。

回答

0

根據您要更新的節點的描述,這裏有一個建議:

set /files/path/to/your/file.xml//entry[key/#text="ipAddr"]/value/#text "255.255.255.0" 

這將選擇在文件中的任何級別的entry節點,其中有一個key/#text子節點與價值ipAddr,然後更新其value/#text子節點以具有值255.255.255.0

+0

這是給我 IPADDR 255.255.255.0<值類型= 「字符串」> 125.125.125.142代替 IPADDR<值類型= 「字符串」> 255.255.255.0 Vash

+0

@ Vash,我無法重現。答案似乎按照我對樣本文件描述的方式工作 - 檢查您是否正確複製了它? –

+0

它的工作原理是將方括號放在錯誤的地方。乾杯! – Vash