2016-04-06 8 views
0

Bu kodu başarıyla aşağıda iki hattın = "false etkin hale getirir. Öyle sadece ikinci hat için = false etkin seçenek aşağıdakilerden hangisidir?xmlstarlet özgü sınıf s

xmlstarlet ed --inplace --update '//ResultCollector/@enabled' --value 'false' "${scriptLocation}" 


<ResultCollector guiclass="SimpleDataWriter" testclass="ResultCollector" testname="Simple Data Writer" enabled="true"> 

<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> 

cevap

1

XPath verir değiştirebilir nasıl onun ana içindeki geçiş sırasına göre belirli bir xML elemanı belirten. yukarıdaki ifade işleme için ana altında ikinci görünen tüm ResultCollector elemanları seçer

--update '//ResultCollector[2]/@enabled' 

sana yakışmış ise

--update '//ResultCollector[@guiclass="ViewResultsFullVisualizer"]/@enabled' 

, yukarıda ifade tüm işlenmesi için seçer:

Daha genel, şans uygulama (örneğin bir etiket değeri olarak) yerine emriyle gömülü bilgilerle daha güvenli seçme elemanları olacak olan guiclass etiketi, ViewResultsFullVisualizer numaralı ResultCollector öğeleridir. Örneğinizde bu, aynı zamanda yalnızca ikinci ResultCollector'un da güncellenmesine neden olur.