vim 如何插入包含从 xml 文件中提取的值的行
vim how to insert line with the values extracted from the xml file
我有一个 xml
文件,我希望在其中找到一些具有我想用来构建 url 值的特定标签。我愿意:
- 找到这些值
- 和他们一起url
- 在文件开头插入这个 url
例如,给定 xml
开头的文件:
<?xml version="1.0" encoding="utf-8"?>
<file_1_doc>
<biul>1</biul>
<poz>33792</poz>
<date_pub>2015-02-16</date_pub>
(...)
我想生成基本形式的 url:
http://foo.com/index.php?biul=show&position=[poz]&publdate=[date_pub]
上面的例子有:
http://foo.com/index.php?biul=show&position=33792&publdate=2015-02-16
- find these values
您需要一个 XML 解析器; Vim 无法正确执行此操作(除非 XML 始终保持一致的结构并且不使用像 XML 命名实体这样的特殊功能,您 可能 尝试使用正则表达式 (matchstr()
) 进行解析,但请先阅读 this)。
Vim 可以嵌入各种脚本语言,例如Python (:help if_pyth.txt
)。使用它们的默认库,XML 解析应该不是一个大问题。否则,您可以通过 system()
.
调用外部工具(例如 xmlstar)
- make an url with them
一旦你在 Vim 变量中得到解析的 XML,这可以通过 printf()
.
轻松完成
- insert this url at the beginning of a file
同样,各种简单的方法。对于一个全新的行,:call append()
;添加到一行,:execute 'normal! a' . text
或较低级别的 call setline(, getline(1) . ...)
.
我有一个 xml
文件,我希望在其中找到一些具有我想用来构建 url 值的特定标签。我愿意:
- 找到这些值
- 和他们一起url
- 在文件开头插入这个 url
例如,给定 xml
开头的文件:
<?xml version="1.0" encoding="utf-8"?>
<file_1_doc>
<biul>1</biul>
<poz>33792</poz>
<date_pub>2015-02-16</date_pub>
(...)
我想生成基本形式的 url:
http://foo.com/index.php?biul=show&position=[poz]&publdate=[date_pub]
上面的例子有:
http://foo.com/index.php?biul=show&position=33792&publdate=2015-02-16
- find these values
您需要一个 XML 解析器; Vim 无法正确执行此操作(除非 XML 始终保持一致的结构并且不使用像 XML 命名实体这样的特殊功能,您 可能 尝试使用正则表达式 (matchstr()
) 进行解析,但请先阅读 this)。
Vim 可以嵌入各种脚本语言,例如Python (:help if_pyth.txt
)。使用它们的默认库,XML 解析应该不是一个大问题。否则,您可以通过 system()
.
- make an url with them
一旦你在 Vim 变量中得到解析的 XML,这可以通过 printf()
.
- insert this url at the beginning of a file
同样,各种简单的方法。对于一个全新的行,:call append()
;添加到一行,:execute 'normal! a' . text
或较低级别的 call setline(, getline(1) . ...)
.