将标签添加到 xml 并逐步更改其值

将标签添加到 xml 并逐步更改其值

我有一个 xml 数据,其中包含很多不同的标签。结构如下:

<category>
  <lesson>
    <textfilecard orderID="0">
      <Question></Question>
      <Answer></Answer>
    </textfilecard>
  </lesson>
</category>

这是从我的闪存卡程序导出的。您可以想象,有多个“textfilecards”,它们都有一个“orderID”。我想合并两个导出,并在 NotePad++ 或任何适合的工具中逐步更改它们的“orderID”。我该如何实现?

搜索和替换只会一遍又一遍地用相同的值替换“orderID”,所以我不能使用它。还有其他技巧吗?

所以基本上,我想要这个:

    <textfilecard orderID="1">
    <textfilecard orderID="2">
    <textfilecard orderID="3">
    <textfilecard orderID="1">
    <textfilecard orderID="2">
    <textfilecard orderID="3">

...轻松地变成这样:

    <textfilecard orderID="1">
    <textfilecard orderID="2">
    <textfilecard orderID="3">
    <textfilecard orderID="4">
    <textfilecard orderID="5">
    <textfilecard orderID="6">

答案1

首先在菜单上点击插件 -> 插件管理,搜索 Python 脚本并安装,安装完成后点击插件 -> PythonScript -> 新建脚本,输入文件名,然后输入以下代码:

import re

counter = 0
def calculate(match):
    global counter
    counter += 1
    return str(counter)

editor.rereplace('~', calculate)

代码~用数字替换。(我修改了@Toto的代码,来自之前的回答)。

第二步,按Ctrl+ H

  • 找什么:\d+
  • 用。。。来代替:~
  • 搜索模式:正则表达式 点击全部替换。所有数字将被替换为~

第三步,点击Plugin -> PythonScript,选择第一步创建的文件,所有~都会被替换成数字,数字会依次递增。

答案2

最简单的方法是使用 Excel,将文本添加到列中。在 上划定界限",使用公式(上面的单元格,+1)更改值,然后将其复制下来。然后您可以将concatenate值重新组合在一起。

可以在“数据”选项卡上找到列中的文本,并将像这样呈现输出。

这是文本到列的输出

在B2中输入公式并向下拖动

在此处输入图片描述

然后"像这样与输入的内容连接起来

在此处输入图片描述

然后,您可以将连接的输出粘贴回 Notepad++。我不知道该如何将它嵌套回具有标题的正确 XML 模式中。也许您可以将所有内容粘贴到 Excel 中,然后执行与上述类似的操作,因为它只会分隔"

相关内容