2016-05-27 9 views
0

Ich Parsing die XML-Datei und insbesondere Knoten Ich habe es zuerst teilen und dann perfomr hinzufügen Operation in und fügen Sie den neuen Knoten darüber.Powershell Split xml Knoten und in der gleichen Datei

Meine XML-Datei:

<Project Default="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="1.0"> 
<Items> 
    <Resource Include="File\Scripts\Main.xml" /> 
    <Resource Include="File\Scripts\File101_102.xml" /> 
</Items> 
</project> 

Powershell:

[xml]$xdoc = Get-Content $path 
$NodeInsertAfter=$xdoc.project.Items.Resource[0] 
$StringtoSplit=$xdoc.project.Items.Resource[1] 
$a=$StringtoSplit.Include.ToString().split('\') 
$a=$StringtoSplit.Include.ToString().split('\') 
$a 

ich erreicht haben, den Knoten Aber wie würde ich die Split-Funktion verwenden, um lesen Sie die Dateinummer dh File102_103.xml

zu erhöhen

Meine Ausgabe muss lauten:

<Project Default="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="1.0"> 
<Items> 
    <Resource Include="File\Scripts\Main.xml" /> 
    <Resource Include="File\Scripts\File102_103.xml" /> 
    <Resource Include="File\Scripts\File101_102.xml" /> 
</Items> 

Antwort

0

könnten Sie eine regex verwenden die beiden Zahlen zu extrahieren:

$fileNumberRegex = '(\d+)_(\d+)' 
$match = [regex]::Match($StringtoSplit.Include, $fileNumberRegex) 
$StringtoSplit.Include -replace $fileNumberRegex, ('{0}_{1}' -f (1+$match.Groups[1].Value), (1+$match.Groups[2].Value)) 
+0

thnaks aber wie ich es nach der ersten Zeile speichern (normalerweise Linie oberen Zeile unten hinzugefügt, aber ich habe nach oben hinzufügen) wie in der Ausgabe und so weiter für inkrementellen Dateinamen. – LivCool

+0

Klonen Sie einfach den '$ NodeInsertAfter'-Knoten mit' Clone() ', ändern Sie dann den Dateinamen mit meinem obigen Skript und hängen Sie den Knoten schließlich mit der Funktion' AppendChild' an. –