xmlsapus
Goto Top

Batch Datei, die bestimmte Zeilen aus XML löscht gesucht

Hallo zusammen,

ich habe eine XML Datei, die am Ende in SAP hochgeladen werden soll und dort ein Warenverzeichnis angelegt. Die Warennummern sind hierarchisch aufgebaut, heißt der 8 Steller steht in der Hierarchie unter dem 6 Steller und dieser unter dem 4 Steller. Ich benötige diese hierarchische Darstellung, aber nicht, da ich nur die 8-Steller im SAP haben möchte.

Ich suche daher eine Batch Datei, die mir aus meiner XML Datei, alle Lines mit dem Element
<ParentCatalogueItemID>0000012512</ParentCatalogueItemID>
Der Wert zwischen den Elementen ist hierbei natürlich unterschiedlich. Mit dem Befehl "Ersetzen" im Texteditor muss ich alle 25.000 Zeilen manuell durchgehen und den Wert immer entsprechend manuell anpassen.

Der Code meiner XML sieht beispielsweise so aus:
<Item>
		<CustomsCommodityClassificationCode>54081000</CustomsCommodityClassificationCode>
		<CatalogueItemID>0000008066</CatalogueItemID>
		<TypeCode>1</TypeCode>
		<ParentCatalogueItemID>0000008065</ParentCatalogueItemID>
		<MeasureUnitID>MTK</MeasureUnitID>
		<BasicText>
			<TypeCode>10052</TypeCode>
			<ContentText languageCode="DE">Gewebe aus hochfesten Viskosegarnen</ContentText>  
		</BasicText>
		<BasicText>
			<TypeCode>10052</TypeCode>
			<ContentText languageCode="EN"></ContentText>  
		</BasicText>
	</Item>
In der neuen Version soll die komplette 5. Zeile fehlen, damit die Nummer nicht mehr auf die entsprechend Hierarchie verweist.

Danke für Eure Tipps.

Content-ID: 71073656137

Url: https://administrator.de/contentid/71073656137

Ausgedruckt am: 22.11.2024 um 06:11 Uhr

aqui
aqui 24.09.2023 aktualisiert um 13:58:15 Uhr
Goto Top
Bitte bei Angabe von Code immer die Code Tags verwenden! Das hilft allen hier und man hat auch Indexnummern zu den Zeilen.
(Als Neuuser einmal die Foren FAQs lesen ist wirklich hilfreich! 😉)

Kann man übrigens mit dem "Bearbeiten" Knopf auch immer noch nachträglich korrigieren! face-wink
Crusher79
Lösung Crusher79 24.09.2023 aktualisiert um 19:00:10 Uhr
Goto Top
Hallo,

Batch naja schwierig. Hier mit PowerShell.

$meineDatei = 'C:\Temp\test.xml'  
$xml = [xml](Get-Content $meineDatei )
$nodes = $xml.SelectNodes("//ParentCatalogueItemID")  
foreach($node in $nodes){$node.ParentNode.RemoveChild($node)}
$xml.Save($meineDatei )

mfg Crusher