微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 XML 文件中增加数千个值,然后在文件夹中的多个文件中执行此操作

如何解决在 XML 文件中增加数千个值,然后在文件夹中的多个文件中执行此操作

我已经挣扎了几天几夜,但我就是做对了。

我有一个名为 DDINP 的 XML 文件在这个 DDINP XML 文件中有交易 ID 标签

<TxId>0001/2021-04-20/000499605</TxId> 

这些 DDINP 文件有很多 - 目前有 4100 个文件,总共超过 260 万个这些交易 ID。

所有这些 DDINP 在创建时也会写入 DRINP 文件,其中来自 DDINP 的交易 ID 如下所示:

<OrgnlTxId>0003/2021-04-09/000499605</OrgnlTxId>

创建这些 DRINP 文件是为了在第二天使用。他们需要匹配兄弟DDINP文件

有几个原因,但是,我需要控制 DDINP 文件的唯一性的最后六位数字,然后还需要将该值写入 DRINP 文件我有随机化交易 ID 的代码,但它没有帮助,因为我无法将该值写入 DRINP 文件

我的代码:(另外,为什么这段代码没有为 xml 文件中的所有 txid 写一个唯一的值?):

#set-executionpolicy remotesigned

#Set your path here,on the first folder.
$path = "C:\Users\Dell\Downloads\FNB 2 Trans\File Creation\DDINP"

#Get the list of all *.txt,with recursivity
$list = Get-ChildItem $path -Recurse -Include "*.xml"

#Replace the elements
[regex]$initialvar=  '<TxId>(.*?)/(.*?)/(.*?)</TxId>'

$newvar = $null



foreach($item in $list)
{
auto-increment

#you get a random value between 111111 and 2222222 
$newvar = (Get-Random -Minimum 1 -Maximum 999999).ToString('000000')
                              
#here in each file,you replace the initial value(789) with the new value
(Get-Content $item) -replace $initialvar,"<TxId>0001/2021-04-20/$newvar</TxId>" | Set-Content $item
                                          

}

所以我的问题是: 1 - 如何在 xml 文件增加从 000001 到 999999 找到的所有 ID,然后继续到文件夹中的下一个文件

2 - 为什么它不在 xml 文件中唯一地生成一个递增的值?他们都是

<TxId>0001/2021-04-20/1</TxId> 
<TxId>0001/2021-04-20/1</TxId> 
<TxId>0001/2021-04-20/1</TxId> 

我发布的代码一个随机生成器,我尝试使用增量代码,但我无法做到。

感谢小伙伴

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。