@hal.littel
One way to split an XML file into smaller files using PowerShell is to read the original XML file, loop through its nodes, and then write each node to a new file.
Here is an example script that demonstrates this process:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
$sourceFile = "original.xml" $destinationFolder = "output" # Load the original XML file [xml]$xml = Get-Content $sourceFile # Create the output folder if it does not exist if (-not (Test-Path $destinationFolder)) { New-Item -ItemType Directory -Path $destinationFolder } # Loop through each node in the XML file foreach ($node in $xml.DocumentElement.ChildNodes) { # Create a new XML document with only the current node $newXml = New-Object System.Xml.XmlDocument $newNode = $newXml.ImportNode($node, $true) $newXml.AppendChild($newNode) # Save the new XML document to a file $fileName = Join-Path $destinationFolder "$($node.LocalName).xml" $newXml.Save($fileName) } |
To use this script, save the code to a PowerShell script file (e.g., splitXml.ps1) and then run it in a PowerShell console. Make sure to replace "original.xml" with the path to your XML file. This script will create a folder named "output" in the same directory as the script and save each node of the original XML file as a separate XML file in that folder.