bocker
Goto Top

XML nach Liste mit Werten durchsuchen

Guten Morgen.

Ich habe folgendes Problem: Ich habe eine XML Datei mit etlichen Angaben die ca 30.000 Datensätze hat. Nun will ich diese XML auslesen und in einer .csv speichern. Gespeichert werden soll immer ein kompletter Datensatz wenn zwei Werte vorkommen! Die beiden Werte befinden sich in einer weiteren csv.

Gegeben sind:
Ausgangs XML
Mit den den Spalten: MODEL_NR und IDE_COLOR_CODE

CSV Datei zum Durchsuchen
BA4356;11
BA4666;512
BA4865;409

@echo on

SET XMLDATEI=D:\test\test.xml

for /f "tokens=3,4" %%i in ('find "<MODEL_NR>" %XMLDATEI%') do set NR=%%i  
habe ich zusammengesucht und gebastalt aber es hilft mir nicht wirklich weiter. Kann mir jemand helfen? Ob mit Batch, Powershell etc ist erstmal egal face-sad

Content-Key: 317120

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

Printed on: April 19, 2024 at 04:04 o'clock

Mitglied: 131026
131026 Oct 07, 2016 at 06:49:02 (UTC)
Goto Top
Und keiner weiß wie deine XML aussieht und was du daraus genau brauchst face-sad, und ob die CSV Überschriften hat oder nicht, oder sollen wir uns das aus den Fingern saugen??

R.
Member: bocker
bocker Oct 07, 2016 at 07:59:39 (UTC)
Goto Top
Hier ein Auszug aus der XML


<?xml version="1.0" encoding="utf-16"?>  
<?INTERSPORT Fileversion="1.3"?>  
<Stammdaten>
<Type>PRICAT</Type><Test>0</Test><OrderID/><Mitglied/><MessageDate/><ILN_Empfaenger/>
<Catalog>
<ILN_SUP_NUM>8712423011465</ILN_SUP_NUM><IDE_SUP_NUM>806108</IDE_SUP_NUM><MitgliederILN /><CatalogID>NIEQFS16</CatalogID><CAT_NAME><![CDATA[NIKE EQUIPMENT FS 2016]]></CAT_NAME><Currency>EUR</Currency>
<Models>
<Model_Type_1><MODELTYPE>1</MODELTYPE><IDE_MODEL_TYPE>02</IDE_MODEL_TYPE><INTERSYSMODTYPE>1</INTERSYSMODTYPE><MODEL_NR>BA4356</MODEL_NR><BRAND_NR>156</BRAND_NR><Description><![CDATA[HERITAGE AD SMALL ITEMS]]></Description><LongDescription /><fedas>100843</fedas><SIZE_RANGE>60.98</SIZE_RANGE><MitgliederFEDAS>100843</MitgliederFEDAS><VAT>19.00</VAT><MIN_QTY_MODEL>1</MIN_QTY_MODEL><UOM>ST</UOM><Division>30</Division><Colors><Color><SUP_COLOR_NR>011</SUP_COLOR_NR><IDE_COLOR_CODE>011</IDE_COLOR_CODE><SUP_COLOR_NAME>BLACK/WHITE/(WHITE)</SUP_COLOR_NAME><MIN_QTY_COLOR>1</MIN_QTY_COLOR><Picture>BA4356-421-PV.JPG</Picture><Items><Item><EAN>0887224806867</EAN><ORDER_TYPE>10</ORDER_TYPE><IDE_SIZE_NAME><![CDATA[-]]></IDE_SIZE_NAME><IDESizeIndex>005209</IDESizeIndex><SUP_SIZE_NAME><![CDATA[MISC]]></SUP_SIZE_NAME><MIN_ORDER_QTY>1</MIN_ORDER_QTY><PKG_UNIT>1</PKG_UNIT><PURCHASE_PRICE>11.90</PURCHASE_PRICE><RETAIL_PRICE>24.99</RETAIL_PRICE><MitgliederUPE>24.99</MitgliederUPE><VALID_FROM>20151101</VALID_FROM><VALID_TO>20161109</VALID_TO><SINGLE_ORDER>1</SINGLE_ORDER><UPDATE_CODE>3</UPDATE_CODE><ORDER_FROM>20151101</ORDER_FROM><ORDER_TO>20151101</ORDER_TO><RECOMMEND_FLAG><Value>0</Value></RECOMMEND_FLAG><SPECIAL_FLAG><Value>0</Value></SPECIAL_FLAG><PICK_FLAG><Value>0</Value></PICK_FLAG><NOS_FLAG>0</NOS_FLAG><NET_FLAG>0</NET_FLAG><PROMO_FLAG><Value>0</Value></PROMO_FLAG><CORE_FLAG><Value>0</Value></CORE_FLAG><DEL_DATES><DLV_DATE><DLV_DATE_TYPE>5</DLV_DATE_TYPE><DLV_DATE_FROM>20151220</DLV_DATE_FROM><DLV_DATE_TO>20160319</DLV_DATE_TO></DLV_DATE></DEL_DATES><SERIES></SERIES></Item></Items></Color><Color><SUP_COLOR_NR>421</SUP_COLOR_NR><IDE_COLOR_CODE>421</IDE_COLOR_CODE><SUP_COLOR_NAME>LOYAL BLUE/WHITE/(WHITE)</SUP_COLOR_NAME><MIN_QTY_COLOR>1</MIN_QTY_COLOR><Picture>BA4356-421-PV.JPG</Picture><Items><Item><EAN>0886066685203</EAN><ORDER_TYPE>10</ORDER_TYPE><IDE_SIZE_NAME><![CDATA[-]]></IDE_SIZE_NAME><IDESizeIndex>005209</IDESizeIndex><SUP_SIZE_NAME><![CDATA[MISC]]></SUP_SIZE_NAME><MIN_ORDER_QTY>1</MIN_ORDER_QTY><PKG_UNIT>1</PKG_UNIT><PURCHASE_PRICE>11.90</PURCHASE_PRICE><RETAIL_PRICE>24.99</RETAIL_PRICE><MitgliederUPE>24.99</MitgliederUPE><VALID_FROM>20151101</VALID_FROM><VALID_TO>20161109</VALID_TO><SINGLE_ORDER>1</SINGLE_ORDER><UPDATE_CODE>3</UPDATE_CODE><ORDER_FROM>20151101</ORDER_FROM><ORDER_TO>20151101</ORDER_TO><RECOMMEND_FLAG><Value>0</Value></RECOMMEND_FLAG><SPECIAL_FLAG><Value>0</Value></SPECIAL_FLAG><PICK_FLAG><Value>0</Value></PICK_FLAG><NOS_FLAG>0</NOS_FLAG><NET_FLAG>0</NET_FLAG><PROMO_FLAG><Value>0</Value></PROMO_FLAG><CORE_FLAG><Value>0</Value></CORE_FLAG><DEL_DATES><DLV_DATE><DLV_DATE_TYPE>5</DLV_DATE_TYPE><DLV_DATE_FROM>20151220</DLV_DATE_FROM><DLV_DATE_TO>20160319</DLV_DATE_TO></DLV_DATE></DEL_DATES><SERIES></SERIES></Item></Items></Color></Colors></Model_Type_1>
<Model_Type_1><MODELTYPE>1</MODELTYPE><IDE_MODEL_TYPE>02</IDE_MODEL_TYPE><INTERSYSMODTYPE>1</INTERSYSMODTYPE><MODEL_NR>BA4272</MODEL_NR><BRAND_NR>156</BRAND_NR><Description><![CDATA[HOOD WAISTPACK]]></Description><LongDescription /><fedas>100843</fedas><SIZE_RANGE>60.98</SIZE_RANGE><MitgliederFEDAS>100843</MitgliederFEDAS><VAT>19.00</VAT><MIN_QTY_MODEL>1</MIN_QTY_MODEL><UOM>ST</UOM><Division>30</Division><Colors><Color><SUP_COLOR_NR>067</SUP_COLOR_NR><IDE_COLOR_CODE>067</IDE_COLOR_CODE><SUP_COLOR_NAME>BLACK/BLACK/(SILVER)</SUP_COLOR_NAME><MIN_QTY_COLOR>1</MIN_QTY_COLOR><Picture>BA4272-067-PV.JPG</Picture><Items><Item><EAN>0883153320375</EAN><ORDER_TYPE>10</ORDER_TYPE><IDE_SIZE_NAME><![CDATA[-]]></IDE_SIZE_NAME><IDESizeIndex>005209</IDESizeIndex><SUP_SIZE_NAME><![CDATA[MISC]]></SUP_SIZE_NAME><MIN_ORDER_QTY>1</MIN_ORDER_QTY><PKG_UNIT>1</PKG_UNIT><PURCHASE_PRICE>9.52</PURCHASE_PRICE><RETAIL_PRICE>19.99</RETAIL_PRICE><MitgliederUPE>19.99</MitgliederUPE><VALID_FROM>20151101</VALID_FROM><VALID_TO>20161109</VALID_TO><SINGLE_ORDER>1</SINGLE_ORDER><UPDATE_CODE>3</UPDATE_CODE><ORDER_FROM>20151101</ORDER_FROM><ORDER_TO>20151101</ORDER_TO><RECOMMEND_FLAG><Value>0</Value></RECOMMEND_FLAG><SPECIAL_FLAG><Value>0</Value></SPECIAL_FLAG><PICK_FLAG><Value>0</Value></PICK_FLAG><NOS_FLAG>0</NOS_FLAG><NET_FLAG>0</NET_FLAG><PROMO_FLAG><Value>0</Value></PROMO_FLAG><CORE_FLAG><Value>0</Value></CORE_FLAG><DEL_DATES><DLV_DATE><DLV_DATE_TYPE>5</DLV_DATE_TYPE><DLV_DATE_FROM>20151220</DLV_DATE_FROM><DLV_DATE_TO>20160319</DLV_DATE_TO></DLV_DATE></DEL_DATES><SERIES></SERIES></Item></Items></Color></Colors></Model_Type_1>
<Model_Type_1><MODELTYPE>1</MODELTYPE><IDE_MODEL_TYPE>02</IDE_MODEL_TYPE><INTERSYSMODTYPE>1</INTERSYSMODTYPE><MODEL_NR>BA4293</MODEL_NR><BRAND_NR>156</BRAND_NR><Description><![CDATA[NIKE CORE SMALL ITEMS II]]></Description><LongDescription /><fedas>100843</fedas><SIZE_RANGE>60.98</SIZE_RANGE><MitgliederFEDAS>100843</MitgliederFEDAS><VAT>19.00</VAT><MIN_QTY_MODEL>1</MIN_QTY_MODEL><UOM>ST</UOM><Division>30</Division><Colors><Color><SUP_COLOR_NR>067</SUP_COLOR_NR><IDE_COLOR_CODE>067</IDE_COLOR_CODE><SUP_COLOR_NAME>BLACK/BLACK/(SILVER)</SUP_COLOR_NAME><MIN_QTY_COLOR>1</MIN_QTY_COLOR><Picture>BA4293-658-PV.JPG</Picture><Items><Item><EAN>0883153320726</EAN><ORDER_TYPE>10</ORDER_TYPE><IDE_SIZE_NAME><![CDATA[-]]></IDE_SIZE_NAME><IDESizeIndex>005209</IDESizeIndex><SUP_SIZE_NAME><![CDATA[MISC]]></SUP_SIZE_NAME><MIN_ORDER_QTY>1</MIN_ORDER_QTY><PKG_UNIT>1</PKG_UNIT><PURCHASE_PRICE>11.90</PURCHASE_PRICE><RETAIL_PRICE>24.99</RETAIL_PRICE><MitgliederUPE>24.99</MitgliederUPE><VALID_FROM>20151101</VALID_FROM><VALID_TO>20161109</VALID_TO><SINGLE_ORDER>1</SINGLE_ORDER><UPDATE_CODE>3</UPDATE_CODE><ORDER_FROM>20151101</ORDER_FROM><ORDER_TO>20151101</ORDER_TO><RECOMMEND_FLAG><Value>0</Value></RECOMMEND_FLAG><SPECIAL_FLAG><Value>0</Value></SPECIAL_FLAG><PICK_FLAG><Value>0</Value></PICK_FLAG><NOS_FLAG>0</NOS_FLAG><NET_FLAG>0</NET_FLAG><PROMO_FLAG><Value>0</Value></PROMO_FLAG><CORE_FLAG><Value>0</Value></CORE_FLAG><DEL_DATES><DLV_DATE><DLV_DATE_TYPE>5</DLV_DATE_TYPE><DLV_DATE_FROM>20151220</DLV_DATE_FROM><DLV_DATE_TO>20160319</DLV_DATE_TO></DLV_DATE></DEL_DATES><SERIES></SERIES></Item></Items></Color><Color><SUP_COLOR_NR>341</SUP_COLOR_NR><IDE_COLOR_CODE>341</IDE_COLOR_CODE><SUP_COLOR_NAME>GORGE GREEN/BLACK/(SILVER)</SUP_COLOR_NAME><MIN_QTY_COLOR>1</MIN_QTY_COLOR><Picture>BA4293-658-PV.JPG</Picture><Items><Item><EAN>0886066685074</EAN><ORDER_TYPE>10</ORDER_TYPE><IDE_SIZE_NAME><![CDATA[-]]></IDE_SIZE_NAME><IDESizeIndex>005209</IDESizeIndex><SUP_SIZE_NAME><![CDATA[MISC]]></SUP_SIZE_NAME><MIN_ORDER_QTY>1</MIN_ORDER_QTY><PKG_UNIT>1</PKG_UNIT><PURCHASE_PRICE>11.90</PURCHASE_PRICE><RETAIL_PRICE>24.99</RETAIL_PRICE><MitgliederUPE>24.99</MitgliederUPE><VALID_FROM>20151101</VALID_FROM><VALID_TO>20161109</VALID_TO><SINGLE_ORDER>1</SINGLE_ORDER><UPDATE_CODE>3</UPDATE_CODE><ORDER_FROM>20151101</ORDER_FROM><ORDER_TO>20151101</ORDER_TO><RECOMMEND_FLAG><Value>0</Value></RECOMMEND_FLAG><SPECIAL_FLAG><Value>0</Value></SPECIAL_FLAG><PICK_FLAG><Value>0</Value></PICK_FLAG><NOS_FLAG>0</NOS_FLAG><NET_FLAG>0</NET_FLAG><PROMO_FLAG><Value>0</Value></PROMO_FLAG><CORE_FLAG><Value>0</Value></CORE_FLAG><DEL_DATES><DLV_DATE><DLV_DATE_TYPE>5</DLV_DATE_TYPE><DLV_DATE_FROM>20151220</DLV_DATE_FROM><DLV_DATE_TO>20160319</DLV_DATE_TO></DLV_DATE></DEL_DATES><SERIES></SERIES></Item></Items></Color><Color><SUP_COLOR_NR>421</SUP_COLOR_NR><IDE_COLOR_CODE>421</IDE_COLOR_CODE><SUP_COLOR_NAME>LOYAL BLUE/BLACK/(SILVER)</SUP_COLOR_NAME><MIN_QTY_COLOR>1</MIN_QTY_COLOR><Picture>BA4293-658-PV.JPG</Picture><Items><Item><EAN>0886066685081</EAN><ORDER_TYPE>10</ORDER_TYPE><IDE_SIZE_NAME><![CDATA[-]]></IDE_SIZE_NAME><IDESizeIndex>005209</IDESizeIndex><SUP_SIZE_NAME><![CDATA[MISC]]></SUP_SIZE_NAME><MIN_ORDER_QTY>1</MIN_ORDER_QTY><PKG_UNIT>1</PKG_UNIT><PURCHASE_PRICE>11.90</PURCHASE_PRICE><RETAIL_PRICE>24.99</RETAIL_PRICE><MitgliederUPE>24.99</MitgliederUPE><VALID_FROM>20151101</VALID_FROM><VALID_TO>20161109</VALID_TO><SINGLE_ORDER>1</SINGLE_ORDER><UPDATE_CODE>3</UPDATE_CODE><ORDER_FROM>20151101</ORDER_FROM><ORDER_TO>20151101</ORDER_TO><RECOMMEND_FLAG><Value>0</Value></RECOMMEND_FLAG><SPECIAL_FLAG><Value>0</Value></SPECIAL_FLAG><PICK_FLAG><Value>0</Value></PICK_FLAG><NOS_FLAG>0</NOS_FLAG><NET_FLAG>0</NET_FLAG><PROMO_FLAG><Value>0</Value></PROMO_FLAG><CORE_FLAG><Value>0</Value></CORE_FLAG><DEL_DATES><DLV_DATE><DLV_DATE_TYPE>5</DLV_DATE_TYPE><DLV_DATE_FROM>20151220</DLV_DATE_FROM><DLV_DATE_TO>20160319</DLV_DATE_TO></DLV_DATE></DEL_DATES><SERIES></SERIES></Item></Items></Color><Color><SUP_COLOR_NR>658</SUP_COLOR_NR><IDE_COLOR_CODE>658</IDE_COLOR_CODE><SUP_COLOR_NAME>UNIVERSITY RED/BLACK/(SILVER)</SUP_COLOR_NAME><MIN_QTY_COLOR>1</MIN_QTY_COLOR><Picture>BA4293-658-PV.JPG</Picture><Items><Item><EAN>0886066685098</EAN><ORDER_TYPE>10</ORDER_TYPE><IDE_SIZE_NAME><![CDATA[-]]></IDE_SIZE_NAME><IDESizeIndex>005209</IDESizeIndex><SUP_SIZE_NAME><![CDATA[MISC]]></SUP_SIZE_NAME><MIN_ORDER_QTY>1</MIN_ORDER_QTY><PKG_UNIT>1</PKG_UNIT><PURCHASE_PRICE>11.90</PURCHASE_PRICE><RETAIL_PRICE>24.99</RETAIL_PRICE><MitgliederUPE>24.99</MitgliederUPE><VALID_FROM>20151101</VALID_FROM><VALID_TO>20161109</VALID_TO><SINGLE_ORDER>1</SINGLE_ORDER><UPDATE_CODE>3</UPDATE_CODE><ORDER_FROM>20151101</ORDER_FROM><ORDER_TO>20151101</ORDER_TO><RECOMMEND_FLAG><Value>0</Value></RECOMMEND_FLAG><SPECIAL_FLAG><Value>0</Value></SPECIAL_FLAG><PICK_FLAG><Value>0</Value></PICK_FLAG><NOS_FLAG>0</NOS_FLAG><NET_FLAG>0</NET_FLAG><PROMO_FLAG><Value>0</Value></PROMO_FLAG><CORE_FLAG><Value>0</Value></CORE_FLAG><DEL_DATES><DLV_DATE><DLV_DATE_TYPE>5</DLV_DATE_TYPE><DLV_DATE_FROM>20151220</DLV_DATE_FROM><DLV_DATE_TO>20160319</DLV_DATE_TO></DLV_DATE></DEL_DATES><SERIES></SERIES></Item></Items></Color></Colors></Model_Type_1>
Mitglied: 131026
131026 Oct 07, 2016 updated at 08:20:54 (UTC)
Goto Top
Les meine Frage noch mal ganz in Ruhe durch!
Member: bocker
bocker Oct 07, 2016 at 08:56:35 (UTC)
Goto Top
Sry hatte wohl den rest des Textes nicht eingefügt!

Aus dem der XML brauche ich immer den kompletten Datensatz
Die Überschriften bzw Felder sind die dafür erfüllt sein müßen sind zum Beispiel
<MODEL_NR>BA4272</MODEL_NR>
<IDE_COLOR_CODE>067</IDE_COLOR_CODE>

Wichtig dabei ist das die Werte mehrfach vorkommen. Also

<MODEL_NR>BA4272</MODEL_NR>
<IDE_COLOR_CODE>067</IDE_COLOR_CODE>

etwa 13 mal! jedesmal wenn die beiden Nummern in der Kombination vorkommen soll der Datensatz mit in die Datei gespeichert werden.

Die Werte nach denen gesucht werden soll stehen dann so in meiner liste.csv
BA4272;067
Mitglied: 131026
131026 Oct 07, 2016 updated at 09:03:22 (UTC)
Goto Top
soll der Datensatz mit in die Datei gespeichert werden.
Und wie willst du das in der CSV abgebildet haben ??? Da sind ja dann noch weitere Verschachtelungen drin.
Member: bocker
bocker Oct 07, 2016 at 09:12:41 (UTC)
Goto Top
genauso wie die alte .xml

Eigentlich könnte auch jeder Datensatz aus der XML gelöscht werden der nicht die Werte aus der csv liste enhält. Wenn das einfacher ist :D
es kann sogar eine xml bleiben face-smile Wichtig ist nur das am Ende nur noch die Datensätze drin sind die in meiner Liste stehen.
Mitglied: 131026
131026 Oct 07, 2016 updated at 11:03:48 (UTC)
Goto Top
Zitat von @bocker:
genauso wie die alte .xml
Dann ist es aber keine csv mehr sondern eine XML-Datei, das ist ein großer Unterschied!

# ----
$csvsearch = 'C:\search.csv'  
$xmlpath = 'c:\xmldatei.xml'  
$out = 'C:\out.txt'  
# ----
$xml = [xml](gc $xmlpath)
(Import-CSV $csvsearch -Delimiter ";" -Header 'ModelNr','ColorCode') | %{  
    $nodes = $xml.SelectNodes("//Model_Type_1[MODEL_NR = '$($_.ModelNr)' and Colors/Color/IDE_COLOR_CODE = '$($_.ColorCode)']")  
    if ($nodes.Count -gt 0){
        $nodes | %{$_.outerXML}
    }
} | set-content $out -Encoding UTF8
Member: bocker
bocker Oct 07, 2016 at 10:38:32 (UTC)
Goto Top
Ich habe es jetzt noch wie folgt verändert. Ein ' hattest du vergessen und ich habe als out auch xml gewählt. Ein 2Probleme habe ich aber auch noch.
1)Die Überschriften fehlen.
2) Es wird nur der erste Datensatz genommen face-sad Bei BA4272;067 steht dann in der fertigen xml nur einmal der Datensatz drin obwohl es diesen 13 oder 14 mal gibt. Da bräuchte ich alle face-sad Immer wenn BA4272;067 in einer der beiden Zellen vorkommt soll der Datensatz genommen werden.

$csvsearch = 'D:\test\search.csv'  
$xmlpath = 'D:\test\xmldatei.xml'  
$out = 'D:\test\out.xml'  
 
$xml = [xml](gc $xmlpath)
(Import-CSV $csvsearch -Delimiter ";" -Header 'ModelNr','ColorCode') | %{  
    $nodes = $xml.SelectNodes("//Model_Type_1[MODEL_NR = '$($_.ModelNr)' and Colors/Color/IDE_COLOR_CODE = '$($_.ColorCode)']")  
    if ($nodes.Count -gt 0){
        $nodes.outerXML
    }
} | set-content $out -Encoding UTF8
Mitglied: 131026
131026 Oct 07, 2016 updated at 11:22:18 (UTC)
Goto Top
2.)
Korrektur siehe oben.
1.) Die Überschriften fehlen.
Was für Überschriften ?? In einer XML gibt es keine Überschriften nur Elemente, Nodes und Attribute, also benutze die richtigen Termini! Danke.

min. PS 3.0 erforderlich
# ----
$csvsearch = 'D:\test\search.csv'  
$xmlpath = 'D:\test\xmldatei.xml'  
$out = 'D:\test\out.xml'   
# ----
$xml = [xml](gc $xmlpath)
$nodes = @()
(Import-CSV $csvsearch -Delimiter ";" -Header 'ModelNr','ColorCode') | %{  
    $nodes += $xml.SelectNodes("//Model_Type_1[MODEL_NR = '$($_.ModelNr)' and Colors/Color/IDE_COLOR_CODE = '$($_.ColorCode)']")  
}
$xml.SelectNodes("//Model_Type_1") | ?{$_ -notin $nodes} | %{$_.ParentNode.RemoveChild($_) | out-null}  
$xml.Save($out)
Member: bocker
bocker Oct 07, 2016 at 12:05:55 (UTC)
Goto Top
Fast perfekt face-smile Sry für meine schlechte Ausdruckweise und schon mal vielen vielen vielen Danke

Was jetzt noch ist ist das Problem das
Wenn es GS0284 mit mehreren zweitnummern gibt immer alle kopiert wern.

Bei
GS0284;072
in meiner search.csv

wird auch
GS0284;171
GS0284;387
kopiert

er soll aber nur kopieren wenn die Kombination vorhanden ist
Mitglied: 131026
131026 Oct 07, 2016 updated at 13:45:08 (UTC)
Goto Top
??? Irgendwie verstehe ich dich nicht ... Mit "ganzem Datensatz" verstehe ich einen ganzen Knoten mit Namen Model_Type_1 wenn beide Eigenschaften übereinstimmen, oder sollen hier die Color-Knoten ausgefiltert werden??

Wenn es um die Color-Knoten geht dann musst du es so machen:
# ----
$csvsearch = 'D:\test\search.csv'  
$xmlpath = 'D:\test\xmldatei.xml'  
$out = 'D:\test\out.xml'   
# ----
$xml = [xml](gc $xmlpath)
$nodes = @()
(Import-CSV $csvsearch -Delimiter ";" -Header 'ModelNr','ColorCode') | group ModelNr | %{  
    $colors = $_.Group.ColorCode
    $found =  $xml.SelectNodes("//Model_Type_1[MODEL_NR = '$($_.Name)']")  
    if ($found.Count -gt 0 ){
        $nodes += $found
        $found | %{$_.Colors.Color | ?{$_.IDE_COLOR_CODE -notin $colors} | %{$_.ParentNode.RemoveChild($_) | out-null}}
    }
}
$xml.SelectNodes("//Model_Type_1") | ?{$_ -notin $nodes} | %{$_.ParentNode.RemoveChild($_) | out-null}  
$xml.Save($out)

Für's nächste mal bitte direkt eine exakte Beschreibung deines Anliegens ohne das wir dir alles aus der Nase ziehen müssen face-confused.

Ich bin dann weg.
Gruß R.
Member: bocker
bocker Oct 07, 2016 at 13:47:20 (UTC)
Goto Top
Der Grund ist einfach:
ModelNr ist die Artikelnummer und gibt den Artikel an
IDE_COLOR_CODE gibt an welche Farbe der Artikel hat

nun gibt es den Artikel GS0284 in 3 Farben. Ich will aber nur den Artikel mit der Farbe 072, die anderen brauche ich nicht. Das ist der Grund dafür das beides passen muß ;)

Aber ich habe gerade geschaut und es klappt super