I have been attempting to dynamically create a list in a .xml file based on a list of all the files in a folder. However, the list in the .xml file needs to be in a certain order and have various information with it.
I have successfully made a list, I just haven't figured out how to order it the way that I want.
Example: List of files in the D:\ folder
BG.pdf
CS.pdf
EN.pdf
17.pdf
This folder can have any number of PDF files in it and the list created needs to consistently have the same/similar order. Essentially 17 needs to be first and EN needs to be second, everything else can be put in alphabetical order.
Here is what I have so far:
$filePath = "D:\"
$list = Get-ChildItem -Path $filePath -Recurse | `
Where-Object { $_.PSIsContainer -eq $false -and $_.Extension -ne '.srt' }
New-Item $filePath’\.PDFList.txt'
$var = "<PDFList>" | Out-File -Append $filePath’\.PDFList.txt'
ForEach($n in $list){
if($n.name.Contains('EN')) {
$var = " <PDF><language>English</language><filename>"+ $n.Name+ "</filename></PDF>" | Out-File -Append $filePath’\.PDFList.txt'
} elseif($n.name.Contains('BG')) {
$var = " <PDF><language>Bulgarian</language><filename>"+ $n.Name+ "</filename></PDF>" | Out-File -Append $filePath’\.PDFList.txt'
} elseif($n.name.Contains('CS')) {
$var = " <PDF><language>Czech</language><filename>"+ $n.Name+ "</filename></PDF>" | Out-File -Append $filePath’\.PDFList.txt'
} elseif($n.name.Contains('17')) {
$var = " <PDF><language>17</language><filename>"+ $n.Name+ "</filename></PDF>" | Out-File -Append $filePath’\.PDFList.txt'
}
$var = "<PDFList>" | Out-File -Append $filePath’\.PDFList.txt'
Rename-Item -Path $filePath’\.PDFList.txt' -NewName $filePath’\.PDFList.xml'
This is what the current result is:
<PDFList>
<PDF><language>Bulgarian</language><filename>BG.pdf</filename></PDF>
<PDF><language>Czech</language><filename>CS.pdf</filename></PDF>
<PDF><language>English</language><filename>EN.PDF</filename></PDF>
<PDF><language>17</language><filename>17.pdf</filename></PDF>
<PDFList>
I want the list put in the .xml file to be this:
<PDFList>
<PDF><language>17</language><filename>17.pdf</filename></PDF>
<PDF><language>English</language><filename>EN.PDF</filename></PDF>
<PDF><language>Bulgarian</language><filename>BG.pdf</filename></PDF>
<PDF><language>Czech</language><filename>CS.pdf</filename></PDF>
<PDFList>