vim如何使用从xml文件中提取的值插入行

vim如何使用从xml文件中提取的值插入行,vim,insert,pattern-matching,Vim,Insert,Pattern Matching,我有一个xml文件,我希望在其中找到一些特定的标记,这些标记带有我想要用来构建url的值。我想: 找到这些值 用它们创建一个url 在文件开头插入此url 例如,给定以以下开头的xml文件: <?xml version="1.0" encoding="utf-8"?> <file_1_doc> <biul>1</biul> <poz>33792</poz> <date_pub

我有一个
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>
    
    (...)
    
    对于上述示例:

    http://foo.com/index.php?biul=show&position=33792&publdate=2015-02-16
    
  • 找到这些值
  • 您需要一个XML解析器;Vim无法正确地做到这一点(除非XML始终具有一致的结构,并且不使用特殊的XML命名实体,您可以尝试使用正则表达式(
    matchstr()
    )进行解析,但要先读取)

    Vim可以嵌入各种脚本语言,例如Python(
    :help if_pyth.txt
    )。使用默认库,XML解析应该不是什么大问题。否则,您可以通过
    system()
    调用外部工具(例如)

  • 用它们创建一个url
  • 一旦在Vim变量中获得了解析后的XML,就可以通过
    printf()
    轻松完成

  • 在文件开头插入此url
  • 同样,还有各种简单的方法。对于一个全新的行,
    :call append()
    ;要添加到行中,请执行“正常”!a’。text或较低级别的
    调用setline(,getline(1)…)

  • 找到这些值
  • 您需要一个XML解析器;Vim无法正确地做到这一点(除非XML始终具有一致的结构,并且不使用特殊的XML命名实体,您可以尝试使用正则表达式(
    matchstr()
    )进行解析,但要先读取)

    Vim可以嵌入各种脚本语言,例如Python(
    :help if_pyth.txt
    )。使用默认库,XML解析应该不是什么大问题。否则,您可以通过
    system()
    调用外部工具(例如)

  • 用它们创建一个url
  • 一旦在Vim变量中获得了解析后的XML,就可以通过
    printf()
    轻松完成

  • 在文件开头插入此url

  • 同样,还有各种简单的方法。对于一个全新的行,
    :call append()
    ;要添加到行中,请执行“正常”!a’。text或较低级别的
    调用setline(,getline(1)…)

    到目前为止您尝试过什么吗?通过展示您的尝试和描述您遇到困难的部分,我们可以更好地了解您的熟练程度,并给出更准确的答案。目前看来,你只是发布了一个需求,希望有人为你编写代码。我同意@Ingo Karkat的观点,他指出我没有包括任何我以前努力的证据。我是新来的
    vim
    ,通过这一描述,我想强调我的目标是重新定义文本,使其成为一个变量(我希望使用它的确切方式)。我一直在网上寻求帮助,但是,由于缺乏经验,如果没有提供例子,我没有成功地使用“试试这个方法”这样的提示。很不幸,我想结论是我希望尽快得到结果。到目前为止,你试过什么了吗?通过展示您的尝试和描述您遇到困难的部分,我们可以更好地了解您的熟练程度,并给出更准确的答案。目前看来,你只是发布了一个需求,希望有人为你编写代码。我同意@Ingo Karkat的观点,他指出我没有包括任何我以前努力的证据。我是新来的
    vim
    ,通过这一描述,我想强调我的目标是重新定义文本,使其成为一个变量(我希望使用它的确切方式)。我一直在网上寻求帮助,但是,由于缺乏经验,如果没有提供例子,我没有成功地使用“试试这个方法”这样的提示。我想结论是,不幸的是,我希望尽快得到结果。谢谢@Ingo Karkat的关注!当我学会如何正确使用
    matchstr()
    时,我意识到在我的情况下,一些替换操作也会起作用。我也感谢你的提问,尽管你认为我一开始在这个问题上没有付出足够的努力。谢谢@Ingo Karkat的关注!当我学会如何正确使用
    matchstr()
    时,我意识到在我的情况下,一些替换操作也会起作用。我也感谢你的提问,尽管你认为我一开始在这个问题上没有付出足够的努力。
    http://foo.com/index.php?biul=show&position=33792&publdate=2015-02-16