TXT zu XML Konverter
Guten Abend,
mit nachfolgendem Skript:
(Quelle: Batch - TXT zu XML konvertieren)
Erstelle ich aus einer TXT eine XML- gerne möchte ich allerdings zusätzlich im Block für die Items, ganz am Ende, noch ein zusätzliches Element erstellen:
Allerdings funktioniert es nicht so, wie ich gerne möchte:
Kann mir jemand helfen, wie ich es mit einbauen kann am Ende der Items?
mit nachfolgendem Skript:
(Quelle: Batch - TXT zu XML konvertieren)
$file = 'D:\orders.txt'
$ausgabeordner = 'D:\Ausgabe'
gc $file | %{
$cols = $_.split(";")
[xml]$xml = @"
<?xml version=`"$($cols)`" encoding=`"$($cols[1])`"?>
<PurchaseOrder PurchaseOrderNumber="$($cols[2])" OrderDate="$($cols[3])">
<Address Type="$($cols[4])">
<Name>$($cols[5])</Name>
<Street>$($cols[6])</Street>
<City>$($cols[7])</City>
<State>$($cols[8])</State>
<Zip>$($cols[9])</Zip>
<Country>$($cols[10])</Country>
</Address>
<Items/>
</PurchaseOrder>
"@
$itemsnode = $xml.SelectSingleNode("/PurchaseOrder/Items")
0..((($cols.Count - 11)/5)-1) | %{
$index = 11+($_*5)
$itm = $xml.CreateElement("Item")
$itm.SetAttribute("PartNumber",$cols[$index])
$node = $Xml.CreateElement("ProductName")
$node.innerText = $cols[$index+1]
[void]$itm.AppendChild($node)
$node = $Xml.CreateElement("Quantity")
$node.innerText = $cols[$index+2]
[void]$itm.AppendChild($node)
$node = $Xml.CreateElement("Price")
$node.innerText = $cols[$index+3]
[void]$itm.AppendChild($node)
$node = $Xml.CreateElement("Comment")
$node.innerText = $cols[$index+4]
[void]$itm.AppendChild($node)
[void]$itemsnode.AppendChild($itm)
}
$xml.Save((join-path $ausgabeordner "Order_$($cols[2]).xml"))
}
Erstelle ich aus einer TXT eine XML- gerne möchte ich allerdings zusätzlich im Block für die Items, ganz am Ende, noch ein zusätzliches Element erstellen:
<PurchaseOrder PurchaseOrderNumber="$($cols[2])" OrderDate="$($cols[3])">
Allerdings funktioniert es nicht so, wie ich gerne möchte:
"@
$itemsnode = $xml.SelectSingleNode("/PurchaseOrder/Items")
0..((($cols.Count - 11)/5)-1) | %{
$index = 11+($_*5)
$itm = $xml.CreateElement("Item")
$itm.SetAttribute("PartNumber",$cols[$index])
$node = $Xml.CreateElement("ProductName")
$node.innerText = $cols[$index+1]
[void]$itm.AppendChild($node)
$node = $Xml.CreateElement("Quantity")
$node.innerText = $cols[$index+2]
[void]$itm.AppendChild($node)
$node = $Xml.CreateElement("Price")
$node.innerText = $cols[$index+3]
[void]$itm.AppendChild($node)
$node = $Xml.CreateElement("Comment")
$node.innerText = $cols[$index+4]
[void]$itm.AppendChild($node)
[void]$itemsnode.AppendChild($itm)
}
$xml.Save((join-path $ausgabeordner "Order_$($cols[2]).xml"))
}
Kann mir jemand helfen, wie ich es mit einbauen kann am Ende der Items?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 612810
Url: https://administrator.de/contentid/612810
Ausgedruckt am: 21.11.2024 um 22:11 Uhr