2016-01-05 43 views
1

我需要從android中的sharedPreference文件獲取值。該文件的XML看起來是這樣的:xmllint如何閱讀具有android sharedpreferences值的xml文件

<?xml version='1.0' encoding='utf-8' standalone='yes' ?> 
<map> 
    <boolean name="apples" value="true" /> 
    <boolean name="grapes" value="true" /> 
    <boolean name="oranges" value="true" /> 
</map> 

和文件名是fruits.xml

如何,我可以使用xmllint在shell腳本來檢索葡萄的價值?

我試過xmllint fruits.xml然後xmllint xpath map/grapes但它不工作。我希望最終的結果是「真實的」,因爲這是葡萄的價值。

+0

'map/boolean [@ name =「grapes」]/@ value' – splash58

回答

1

在xmllint此選項的正確名稱是--xpath並且必須有引號(")周圍的路徑表達式:

$ xmllint --xpath "string(/map/boolean[@name = 'grapes']/@value)" fruit.xml 
true 

如果您正在使用/map/boolean[@name = 'grapes']/@value沒有它周圍的字符串函數,xmllint將返回整體屬性:value="true"

如果您不確定的選項只需鍵入

$ xmllint 

不帶任何參數。這將帶來的幫助和名單,其中包括:

--xpath EXPR:計算XPath表達式,意味着--noout

我在Mac OS X,使用以下版本xmllint:

$ xmllint --version 
xmllint: using libxml version 20902