android - 如何在vim中解析xml文件?

标签 android vim

我目前正在开发一个安卓项目。现在我想完成一项工作:解析一个名为 AndroidManifest.xml 的 xml 文件并从中获取一些属性。并在 vim 中设置一些值。

这是 AndroidManifest.xml 文件。

<?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/

相关文章:

java - 带有 rtl 布局方向的 api 17 和 18 的 Tablayout 问题

java - Android/Java WiFi 直接对端列表

java - Android 振动设置 - else 下的红线?

Android:我可以从网站上拍张照片并自动上传吗?

VIM:交换由冒号分隔的列

android - 是否可以使用 ViewPager 制作此 Android 屏幕动画?

vim - 根据可见行数调整 vim 分割大小

vim - 在 Vim 中搜索整个单词(破折号字符)

vim - Vundle 和 NeoBundle 有什么区别?

vim - 在vim中根据文件扩展名更改文件类型