Я пытаюсь использовать xmlstarlet на своем Mac, чтобы получить значение атрибута элемента из его подэлемента, вот пример
У меня есть файл xml с множеством подобных элементов, атрибуты вроде android:configChanges варьируются от элемента к элементу:
<activity android:configChanges="ABC" android:screenOrientation="XXX">
<intent-filter>
<action android:name="XYZ"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
дело в том, что значение category android:name
уникально для этого элемента, который равен android.intent.category.LAUNCHER
.
Есть ли способ использовать xmllint или xmlstarlet, где я запускаю
xmlstarlet <magic code> <filename>
<magic code>
должен быть в состоянии сказать значение android:configChanges
и android:screenOrientation
, когда предусмотрено, что /activity/intent-filter/category android:name = "android.intent.category.LAUNCHER"
таким образом, желаемый результат должен быть
android:configChanges="ABC" android screenOrientation="XXX"
пока единственное, что я знаю, это как получить значение других подэлементов из определенного подэлемента, используя
xmlstarlet sel -t -c "/activity/intent-filter/category[@android:name=android.intent.category.LAUNCHER]/*" file.xml
который возвращает
<action android:name="XYZ"/>
<category android:name="android.intent.category.LAUNCHER"/>
Любая помощь будет оценена! :)