我目前正在开发一个安卓项目。现在我想完成一项工作:解析一个名为 AndroidManifest.xml
的 xml 文件并从中获取一些属性。并在 vim 中设置一些值。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.base.module.callhistory"
android:versionCode="1"
android:versionName="1.0">
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application android:label="@string/app_name"
android:theme="@android:style/Theme.Light.NoTitleBar"
android:icon="@drawable/call_history">
<activity android:name="HistoryMainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="HistoryListActivity">
<intent-filter>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name="DetailListActivity">
<intent-filter>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
我想解析package="com.base.module.callhistory"
和 HistoryListActivity
在 <activity android:name="HistoryMainActivity"
.然后我可以使用这两个值来编写一个命令来自动启动我的应用程序。我只是手动设置这些值。但我想如果 vim 可以解析这个文件并自动设置这些值,那一定很酷。
最佳答案
考虑 xmlstarlet,xmllint --xpath
否则,您可以使用 perl 或 python 来实现您的目标如果您已经编译了它(通常是打包版本)
尽管如此,您仍然可以使用带有 c i t 的普通搜索 (/
) 模式来替换标签内容
关于android - 如何在vim中解析xml文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9463075/