Say you have the following file.xml:
<?xml version="1.0" encoding="UTF-8"?> <data> <item name="Item 1" id="0" /> <item name="Item 2" id="1001" /> <item name="Item 3" id="0" /> <item name="Item 4" id="1002" /> <item name="Item 5" id="1005" /> <item name="Item 6" id="0" /> </data>And you want to replace all those
"0" id attributes with incremental values.If you have PowerShell, this can be accomplished pretty easily with the following commands:
$xml = New-Object xml
$xml.Load("$PWD\file.xml")
$i = 2001; foreach ($item in $xml.data.item) { if ($item.id -eq 0) { $item.id = [string]$i; $i++ } }
$xml.Save("$PWD\updated.xml")
Now your output (updated.xml) looks like:
<?xml version="1.0" encoding="UTF-8"?> <data> <item name="Item 1" id="2001" /> <item name="Item 2" id="1001" /> <item name="Item 3" id="2002" /> <item name="Item 4" id="1002" /> <item name="Item 5" id="1005" /> <item name="Item 6" id="2003" /> </data>
Easy-peasy...