usenussi
Goto Top

Cls Daten für eCommerce vorbereiten

Ich habe ein großes Problem cls Daten so aufzubereiten, das ich diese in Lexware einlesen kann.
Quellen die ich als xml Datei aus anderen Quellen bekomme kann ich einwandfrei mit Hilfe von Powerschell und entsprechender xsl Datei einlesen.

Mein Problem:

Als cls Konverter würde ich gerne die im Forum veröffentliche Datei von "colinardo" Powershell-Script konvertiert alle CSV-Dateien eines
Ordners zu XML-Dateien mit gleich lautendem Pfad und Namen verwenden.

1. Problem : Die cls hat in den Namensfeldern Leerzeichen enthalten.

Muster csv.
Verkaufsprotokollnummer;Nutzername;Vollständiger Name des Käufers;E-Mail des Käufers;Käuferadresse 1;Käuferadresse 2;Ort des Käufers;Bundesland des Käufers;PLZ des Käufers;Land des Käufers;Bestellnummer;Artikelnummer;Transaktions-ID;Artikelbezeichnung;Stückzahl;Verkaufspreis;Inklusive Mehrwertsteuersatz;Verpackung und Versand;Versicherung;Gesamtpreis;Zahlungsmethode;PayPal Transaktions-ID;Rechnungsnummer;Rechnungsdatum;Verkaufsdatum;Kaufabwicklungsdatum;Bezahlt am;Verschickt am;Versandservice;Abgegebene Bewertungen;Erhaltene Bewertungen;Notizzettel;Bestandseinheit;Private Notizen;Produktkennzeichnung, Typ;Produktkennzeichnung, Wert;Produktkennzeichnung, Wert 2;Variantendetails;Produktreferenznummer;Verwendungszweck;Telefon;eBay Plus
92360;Nutzername1;Name Käufer1;email1@gmail1.com;Strasse 1;;Ort1;;20000;Deutschland;;456778891;2,05127E+12;Artikelbezeichnung1;1;EUR 95,00;19%;EUR 7,90;EUR 0,00;EUR 102,90;PayPal;24669464Y99497524;;;04.01.2019;04.01.2019;04.01.2019;07.01.2019;DHL Paket;Nein;;;;;;;;;;;4,9E+11;Nein
92361;Nutzername2;Name Käufer2;email1@gmail1.com;Strasse 2;;Ort2;;20001;Deutschland;;456778892;2,05127E+12;Artikelbezeichnung2;1;EUR 9,95;19%;EUR 0,00;EUR 0,00;EUR 9,95;PayPal;5U966125FR004621T;;;04.01.2019;04.01.2019;04.01.2019;04.01.2019;DHL Päckchen;Nein;Positiv;;042-10050;;;;;;;;4,9E+11;Nein
92367;Nutzername6;Name Käufer6;email1@gmail1.com;Strasse 6;;Ort6;none;20005;Schweden;21234xxx7476;;;;2;EUR 121,00;;EUR 18,90;EUR 0,00;EUR 139,90;PayPal;05T052069W582744W;;;10.01.2019;10.01.2019;10.01.2019;11.01.2019;DHL Paket International;;;;;;;;;;;;4,9E+11;Nein
92367;Nutzername7;Name Käufer7;email1@gmail1.com;Strasse 7;;Ort7;;20006;;;999999991;300000001;Artikel 5;1;EUR 22,00;19%;;;;;;;;10.01.2019;;;;;Nein;;;MA1003;;;;;;;;;
92367;Nutzername8;Name Käufer8;email1@gmail1.com;Strasse 8;;Ort8;;20007;;;999999992;300000002;Artikel 6;1;EUR 99,00;19%;;;;;;;;10.01.2019;;;;;Nein;;;;;;;;;;;;
92368;Nutzername9;Name Käufer9;email1@gmail1.com;Strasse 9;;Ort9;;20008;Deutschland;;999999993;300000003;Artikel 7;4;EUR 9,95;19%;EUR 0,00;EUR 0,00;EUR 39,80;PayPal;0XB495074R926294N;;;12.01.2019;12.01.2019;12.01.2019;14.01.2019;DHL Päckchen;Nein;;;042-10050;;;;;;;;4,9E+11;Nein
92376;Nutzername15;Name Käufer15;email1@gmail1.com;Strasse 15;;Ort15;;20014;Deutschland;2478xxx9018;;;;2;EUR 39,00;;EUR 4,95;EUR 0,00;EUR 43,95;PayPal;78J63325TK687994B;;;22.01.2019;22.01.2019;22.01.2019;22.01.2019;Versand zum Sonderpreis;;;;;;;;;;;;4,9E+11;Nein
92376;Nutzername16;Name Käufer16;email1@gmail1.com;Strasse 16;;Ort16;;20015;;;888881;59016449009;Artikelbezeichnung 10;1;EUR 17,00;19%;;;;;;;;22.01.2019;;;;;Nein;Positiv;;MA1002;;;;;;;;;
92376;Nutzername17;Name Käufer17;email1@gmail1.com;Strasse 17;;Ort17;;20016;;;888882;2,05902E+12;Artikelbezeichnung 11;1;EUR 22,00;19%;;;;;;;;22.01.2019;;;;;Nein;Positiv;;MA1003;;;;;;;;;
92377;Nutzername18;Name Käufer18;email1@gmail1.com;Strasse 18;;Ort18;;20017;Deutschland;;888883;2,05902E+12;Artikelbezeichnung 12;1;EUR 28,00;19%;EUR 0,00;EUR 0,00;EUR 28,00;PayPal;9EV288037R084371K;;;22.01.2019;22.01.2019;22.01.2019;22.01.2019;DHL Päckchen;Nein;Positiv;;042-10050;;;;;;;;4,9E+11;Nein
92382;Nutzername21;Name Käufer21;email1@gmail1.com;Strasse 21;;Ort21;;20020;Deutschland;2471xx145017;;;;2;EUR 39,90;;EUR 0,00;EUR 0,00;EUR 39,90;PayPal;2EW5048516261404C;;;26.01.2019;26.01.2019;26.01.2019;28.01.2019;DHL Paket;;;;;;;;;;;;4,9E+11;Nein
92382;Nutzername22;Name Käufer22;email1@gmail1.com;Strasse 22;;Ort22;;20021;;;77777777761;100000001;Artikelbezeichnung 20;1;EUR 19,95;19%;;;;;;;;26.01.2019;;;;;Nein;Positiv;;;;;;;;;;;
92382;Nutzername23;Name Käufer23;email1@gmail1.com;Strasse 23;;Ort23;;20022;;;77777777762;100000002;Artikelbezeichnung 21;1;EUR 19,95;19%;;;;;;;;26.01.2019;;;;;Nein;Positiv;;;;;;;;;;;
92383;Nutzername24;Name Käufer24;email1@gmail1.com;Strasse 24;;Ort24;;20023;Deutschland;;77777777763;100000003;Artikelbezeichnung 22;1;EUR 159,00;19%;EUR 4,90;EUR 0,00;EUR 163,90;PayPal;8XU667129U6165314;;;26.01.2019;26.01.2019;26.01.2019;29.01.2019;DHL Paket;Nein;;;;;;;;;;;4,9E+11;Nein
92384;Nutzername25;Name Käufer25;email1@gmail1.com;Strasse 25;Bahnhofstr. 30;Ort25;;20024;Deutschland;;77777777764;100000004;Artikelbezeichnung 23;1;EUR 9,95;19%;EUR 0,00;EUR 0,00;EUR 9,95;PayPal;10U23984UJ328754B;;;27.01.2019;27.01.2019;27.01.2019;28.01.2019;DHL Päckchen;Nein;Positiv;;042-10050;;;;;;;;4,9E+11;Nein
92388;Nutzername26;Name Käufer26;email1@gmail1.com;Strasse 26;;Ort26;;20025;Deutschland;2474xxx47016;;;;3;EUR 61,00;;EUR 4,95;EUR 0,00;EUR 65,95;PayPal;8NU451965H7369836;;;28.01.2019;28.01.2019;28.01.2019;28.01.2019;Versand zum Sonderpreis;;;;;;;;;;;;4,9E+11;Nein
92388;Nutzername27;Name Käufer27;email1@gmail1.com;Strasse 27;;Ort27;;20026;;;4444444451;2000000001;Artikel Neu 1;1;EUR 17,00;19%;;;;;;;;28.01.2019;;;;;Nein;;;MA1002;;;;;;;;;
92388;Nutzername28;Name Käufer28;email1@gmail1.com;Strasse 28;;Ort28;;20027;;;4444444452;2000000002;Artikel Neu 2;1;EUR 22,00;19%;;;;;;;;28.01.2019;;;;;Nein;;;MA1002;;;;;;;;;
92388;Nutzername29;Name Käufer29;email1@gmail1.com;Strasse 29;;Ort29;;20028;;;4444444453;2000000003;Artikel Neu 3;1;EUR 22,00;19%;;;;;;;;28.01.2019;;;;;Nein;;;MA1003;;;;;;;;;
92389;Nutzername30;Name Käufer30;email1@gmail1.com;Strasse 30;;Ort30;;20029;Deutschland;;4444444454;2000000004;Artikel Neu 4;1;EUR 159,00;19%;EUR 4,90;EUR 0,00;EUR 163,90;PayPal;4PA43648YB417943H;;;30.01.2019;30.01.2019;30.01.2019;31.01.2019;DHL Paket;Nein;;;;;;;;;;;4,9E+11;Nein


Konverter
param(
    [string]$folder,
    [string]$delimiter = ";"  
)
# Alle CSV-Dateien des Ordners durchlaufen
gci $folder -Filter "*.csv" | %{  
    write-host "Konvertiere '$($_.Fullname)' ..." -ForegroundColor Green  
    # importiere CSV-Datei als Objekt
    $csv = import-csv $_.Fullname -Delimiter $delimiter
    # Spaltennamen der CSV-Datei extrahieren
    $cols = $csv | gm -MemberType NoteProperty | select -ExpandProperty Name
    # erzeuge neues XML-Dokument
    $xml = New-Object XML
    # XML Grundgerüst laden
    $xml.LoadXml('<?xml version="1.0" encoding="utf-8"?><root></root>')  
    # Root-Knoten referenzieren
    $root = $xml.SelectSingleNode("/root")  
    # für jede Zeile der CSV-Datei ...
    foreach($line in $csv){
        # erzeuge ein neues Row-Element
        $row = $xml.CreateElement("row")  
        # für jede Spalte der Zeile erstelle ein neues Element mit dem Namen der Spalte und dem Inhalt der aktuellen Zeile
        $cols | %{
            $col = $xml.CreateElement($_)
            $col.InnerText = $line.($_)
            $row.AppendChild($col) | out-null
        }
        # füge das Row-Element im Root-Knoten ein
        $root.AppendChild($row) | out-null
    }
    # Speichere die neue XML-Datei
    $xml.Save($_.DirectoryName + "\" + $_.BaseName + ".xml")  
}

Kann man über ein Script die cls so umwandeln, eine Xml entsteht wie unten gezeigt?

Pervekte xml (Muster)

<?xml version="1.0" encoding="ISO-8859-1"?>  
<ORDER_LIST>
	<ORDER xmlns="http://www.opentrans.org/XMLSchema/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" type="standard">  
		<ORDER_HEADER>
			<CONTROL_INFO>
				<GENERATOR_INFO>Custom XSL</GENERATOR_INFO>
				<GENERATION_DATE>2019-02-04T17:44:19.578+01:00</GENERATION_DATE>
			</CONTROL_INFO>
			<ORDER_INFO>
				<ORDER_ID>000-0815-0815</ORDER_ID>
				<REMARK type="order">Anlieferung: Per Paketdienst</REMARK>  
				<REMARK type="shipping_fee">3.28</REMARK>  
				<ORDER_DATE>2018-01-14T11:58:16+00:00</ORDER_DATE>
				<ORDER_PARTIES>
					<BUYER_PARTY>
						<PARTY>
							<ADDRESS>
								<NAME>Firmenname</NAME>
								<NAME2>Keiner</NAME2>
								<NAME3>Vorname</NAME3>
								<ANSCHRIFT_ZUSATZ>Bayern</ANSCHRIFT_ZUSATZ>
								<STREET>Florastr. 43</STREET>
								<Anschrift_HausNr>43</Anschrift_HausNr>
								<ZIP>800815</ZIP>
								<CITY>Irgendwo</CITY>
								<COUNTRY>DE</COUNTRY>
								<PHONE type="other">0123456789</PHONE>  
								<FAX/>
								<EMAIL>Test@Familia.de</EMAIL>
							</ADDRESS>
						</PARTY>
					</BUYER_PARTY>
					<INVOICE_PARTY>
						<PARTY>
							<ADDRESS>
								<NAME/>
								<NAME2>Irgendwer</NAME2>
								<NAME3>Vorname</NAME3>
								<ANSCHRIFT_ZUSATZ>Bayern</ANSCHRIFT_ZUSATZ>
								<STREET>Hierstr. 43</STREET>
								<ZIP>90815</ZIP>
								<CITY>Irgendwo</CITY>
								<COUNTRY>DE</COUNTRY>
								<ANSCHRIFT_ZUSATZ>Bayern</ANSCHRIFT_ZUSATZ>
								<PHONE type="other">00001234567</PHONE>  
								<FAX/>
								<EMAIL/>
							</ADDRESS>
						</PARTY>
					</INVOICE_PARTY>
				</ORDER_PARTIES>
				<PRICE_CURRENCY>978</PRICE_CURRENCY>
			</ORDER_INFO>
		</ORDER_HEADER>
		<ORDER_ITEM_LIST>
			<ORDER_ITEM>
				<LINE_ITEM_ID>0</LINE_ITEM_ID>
				<ARTICLE_ID>
					<SUPPLIER_AID>199999999</SUPPLIER_AID>
					<DESCRIPTION_SHORT>Schubladen</DESCRIPTION_SHORT>
					<DESCRIPTION_LONG>Schubladen</DESCRIPTION_LONG>
				</ARTICLE_ID>
				<QUANTITY>1</QUANTITY>
				<Quantity xmlns="">1</Quantity>  
				<ORDER_UNIT>1</ORDER_UNIT>
				<ARTICLE_PRICE type="net_list">  
                           //Nettopreis
                           <PRICE_AMOUNT>8.36</PRICE_AMOUNT><PRICE_LINE_AMOUNT>8.36</PRICE_LINE_AMOUNT><TAX>[TODO]</TAX></ARTICLE_PRICE>
			</ORDER_ITEM>
		</ORDER_ITEM_LIST>
		<ORDER_SUMMARY>
			<TOTAL_ITEM_NUM>
				<TOTAL_ITEM_NUM>1</TOTAL_ITEM_NUM>
			</TOTAL_ITEM_NUM>
			<QUANTITY/>
		</ORDER_SUMMARY>
	</ORDER>
</ORDER_LIST>

Meine jetzigen Versuche: (haben auch nicht eine Zeile eingelesen wenn ich per Hand die Leerzeichen entfernt habe.)

meine xsl
<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> 
   <!--<xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/>--> 
   <xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/> 
   <!--<xsl:template match="/AmazonEnvelope">--> 
 <ORDER_LIST>
         <xsl:for-each select="Message"> 
            <ORDER xmlns="http://www.opentrans.org/XMLSchema/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" type="standard"> 
  <ORDER_HEADER>
                  <CONTROL_INFO>
                     <GENERATOR_INFO>Custom XSL</GENERATOR_INFO>
                     <GENERATION_DATE>
                        <xsl:value-of select="root/rowVerkaufsdatum"/> 
                     </GENERATION_DATE>
                  </CONTROL_INFO>
                  <ORDER_INFO>
<ORDER_ID><xsl:value-of select="root/row/Transaktions-ID"/></ORDER_ID> 
                     <REMARK type="order">Anlieferung: Per Paketdienst</REMARK> 
                     <REMARK type="root/row/Verkaufsprotokollnummer"> 
                     <xsl:value-of select="round (sum(OrderReport/Item/ItemPrice/Component[Type='Shipping']/Amount )div 1.19 *100) div 100 "/> 
                     
                    <!--REMARK type="Order"> 
                       <xsl:value-of select="round(sum(OrderReport/Item/ItemFees/Fee[Type='Commission']/Amount )div 1.19*100)div (100)*-1"/> 
                     </REMARK>-->

                     <!--<REMARK type="Gebuehr"> Achtung!!! wenn Gebühr statt Order wird Nebenleistung Berechnet!!!! 
                       <xsl:value-of select="round(sum(OrderReport/Item/ItemFees/Fee[Type='Commission']/Amount )div 1.19*100)div (100)*-1"/> 
                     </REMARK>-->
                     
                     
                     </REMARK>
                     <ORDER_DATE>
                        <xsl:value-of select="OrderReport/OrderDate"/> 
                     </ORDER_DATE>
                     <ORDER_PARTIES>
                        <BUYER_PARTY>
                           <!--Lieferadresse BUYER_PARTY-->
                           <PARTY>
                              <ADDRESS>
                                 <NAME>
                                    <xsl:value-of select="root/row/Verwendungszweck"/><!--prüfen--> 
                                 </NAME>
                                 <!--Firma Lieferadresse BUYER_PARTY-->
                                 <NAME2>
                                    <xsl:value-of select="substring-after(OrderReport/FulfillmentData/Address/Name,' ')"/> 
                                 </NAME2>
                                 <NAME3>
                                    <xsl:value-of select="substring-before(OrderReport/FulfillmentData/Address/Name,' ')"/> 
                                 </NAME3>
                                 <!--Nachname Lieferadresse BUYER_PARTY-->
                                 <!--Vorname Lieferadresse BUYER_PARTY-->
                                 <ANSCHRIFT_ZUSATZ>
                                    <xsl:value-of select="OrderReport/FulfillmentData/Address/StateOrRegion"/> 
                                 </ANSCHRIFT_ZUSATZ>
                                 <STREET>
                                    <xsl:choose>
                                       <xsl:when test="count(OrderReport/FulfillmentData/Address/AddressFieldTwo) &gt; 0"> 
                                          <xsl:value-of select="OrderReport/FulfillmentData/Address/AddressFieldTwo"/> 
                                       </xsl:when>
                                       <xsl:otherwise>
                                          <xsl:value-of select="OrderReport/FulfillmentData/Address/AddressFieldOne"/> 
                                       </xsl:otherwise>
                                    </xsl:choose>
                                 </STREET>
                                 <Anschrift_HausNr>
                                    <xsl:value-of select="substring-after(OrderReport/FulfillmentData/Address/AddressFieldOne, '. ')"/> 
                                 </Anschrift_HausNr>
                                 <ZIP>
                                    <xsl:value-of select="OrderReport/FulfillmentData/Address/PostalCode"/> 
                                 </ZIP>
                                 <CITY>
                                    <xsl:value-of select="OrderReport/FulfillmentData/Address/City"/> 
                                 </CITY>
                                 <COUNTRY>
                                    <xsl:value-of select="root/row/Kaufabwicklungsdatum"/> 
                                 </COUNTRY>
                                 <PHONE type="other"> 
                                    <xsl:value-of select="root/row/Telefon"/> 
                                 </PHONE>
                                 <FAX>
                                    <!--<xsl:value-of select="OrderReport/FulfillmentData/Address/StateOrRegion"/>--> 
                                 </FAX>
                                 <EMAIL>
                                    <xsl:value-of select="OrderReport/BillingData/BuyerEmailAddress"/> 
                                 </EMAIL>
                              </ADDRESS>
                           </PARTY>
                        </BUYER_PARTY>
                        <INVOICE_PARTY>
                           <!--Rechnungsadresse INVOICE_PARTY-->
                           <PARTY>
                              <ADDRESS>
                                 <NAME>
                                    <xsl:value-of select="root/row/Verwendungszweck"/><!--prüfen--> 
                                 </NAME>
                                 <!--Firma in Lexware Rechnungsadresse INVOICE_PARTY-->
                                 <!--Zuname in Lexware Rechnungsadresse INVOICE_PARTY-->
                                 <NAME2>
                                    <xsl:value-of select="substring-after(OrderReport/BillingData/Address/Name,' ')"/> 
                                 </NAME2>
                                 <NAME3>
                                    <xsl:value-of select="substring-before(OrderReport/BillingData/Address/Name,' ')"/> 
                                 </NAME3>
                                 <!--Vorname in Lexware Rechnungsadresse INVOICE_PARTY-->
                                 <ANSCHRIFT_ZUSATZ>
                                    <xsl:value-of select="OrderReport/BillingData/Address/StateOrRegion"/> 
                                 </ANSCHRIFT_ZUSATZ>
                                 <STREET>
                                    <xsl:choose>
                                       <xsl:when test="count(OrderReport/BillingData/Address/AddressFieldTwo) &gt; 0"> 
                                          <xsl:value-of select="OrderReport/BillingData/Address/AddressFieldTwo"/> 
                                       </xsl:when>
                                       <xsl:otherwise>
                                          <xsl:value-of select="OrderReport/BillingData/Address/AddressFieldOne"/> 
                                       </xsl:otherwise>
                                    </xsl:choose>
                                 </STREET>
                                 <ZIP>
                                    <xsl:value-of select="OrderReport/BillingData/Address/PostalCode"/> 
                                 </ZIP>
                                 <CITY>
                                    <xsl:value-of select="OrderReport/BillingData/Address/City"/> 
                                 </CITY>
                                 <COUNTRY>
                                    <xsl:value-of select="OrderReport/BillingData/Address/CountryCode"/> 
                                 </COUNTRY>
                                 <ANSCHRIFT_ZUSATZ>
                                    <xsl:value-of select="OrderReport/BillingData/Address/StateOrRegion"/> 
                                 </ANSCHRIFT_ZUSATZ>
                                 <PHONE type="other"> 
                                    <xsl:value-of select="OrderReport/BillingData/Address/PhoneNumber"/> 
                                 </PHONE>
                                 <FAX/>
                                 <EMAIL/>
                              </ADDRESS>
                           </PARTY>
                        </INVOICE_PARTY>
                     </ORDER_PARTIES>
                     <PRICE_CURRENCY>978</PRICE_CURRENCY>
                  </ORDER_INFO>
               </ORDER_HEADER>
               <ORDER_ITEM_LIST>
                  <xsl:for-each select="OrderReport/Item"> 
                     <ORDER_ITEM>
                        <LINE_ITEM_ID>
                           <xsl:value-of select="position()-1"/> 
                        </LINE_ITEM_ID>
                        <ARTICLE_ID>
                           <SUPPLIER_AID>
                              <xsl:value-of select="root/rowArtikelnummer"/> 
                           </SUPPLIER_AID>
                           <DESCRIPTION_SHORT>
                              <xsl:value-of select="root/rowArtikelbezeichnung"/> 
                           </DESCRIPTION_SHORT>
                          <DESCRIPTION_LONG><xsl:value-of select="Title"/></DESCRIPTION_LONG>                        </ARTICLE_ID> 
                        <QUANTITY>
                           <xsl:value-of select="Quantity"/> 
                        </QUANTITY>
                        <!-- hier wird die Bestellmenge als Variable deklariert, damit anschließend der Einzelpreis berechnet werden kann -->
                        <xsl:copy-of select="Quantity"/> 
                        <ORDER_UNIT>1</ORDER_UNIT>
                        <ARTICLE_PRICE type="net_list"> 
                           //Nettopreis
                           <!--<PRICE_AMOUNT><xsl:value-of select="ItemPrice/Component[Type='Principal']/Amount" /></PRICE_AMOUNT>--> 
                           <!-- Der Einzelpreis wird durch PRICE_AMOUNT div Quantity (Gesamtpreis durch Menge)berchnet , da Amazon kein Einzelpreis übergibt -->
                       <PRICE_AMOUNT>
                              <xsl:value-of select="root/row/Verkaufspreis"/> 
                           </PRICE_AMOUNT>
                           <PRICE_LINE_AMOUNT>
                              <xsl:value-of select="round((ItemPrice/Component[Type='Principal']/Amount div Quantity div 1.19)*100)div 100"/> 
                           </PRICE_LINE_AMOUNT>
                           <TAX>[TODO]</TAX>
                        </ARTICLE_PRICE>
                     </ORDER_ITEM>
                  </xsl:for-each>
               </ORDER_ITEM_LIST>
               <ORDER_SUMMARY>
                  <TOTAL_ITEM_NUM>
                     <TOTAL_ITEM_NUM>
                        <xsl:value-of select="count('OrderReport/Item')"/> 
                     </TOTAL_ITEM_NUM>
                  </TOTAL_ITEM_NUM>
              
            <!--<TOTAL_AMOUNT>
                        <xsl:value-of select="round(sum(OrderReport/Item/ItemPrice/Component[Type='Principal']/Amount div 1.19)*100)div 100" /> 
                     </TOTAL_AMOUNT>-->
                  <QUANTITY>
                     <xsl:value-of select="/ORDER_LIST/ORDER/ORDER_ITEM_LIST/ORDER_ITEM/Quantity "/> 
                  </QUANTITY>
               </ORDER_SUMMARY>
            </ORDER>
         </xsl:for-each>
      </ORDER_LIST>
</xsl:stylesheet>

Anschließend mein Prozess
# Pfad ermitteln in de das Skript liegt
$scriptroot = Split-Path $MyInvocation.MyCommand.Definition -Parent

# Pfad zu dem XML Dateien von Ebay
$xmlsourcepath = "$scriptroot\"  
# Pfad für die fertigen XMLs
$xmloutpath = "$scriptroot\Ebay_Daten"  
# Pfad in dem die verarbeiteten Ebay-Orders verschoben werden
$xmlarchive = "$scriptroot\OLD"  
# Pfad zum XSL Template zur Umwandlung der XML Dateien
#$xsltemplate = "C:\udo_xslt2_processing\Ebay\Ebay.xsl" 
$xsltemplate = "$scriptroot\template.xsl"  

# Installationspfad von AltovaXML ermitteln
$GUID = Get-Itemproperty "HKLM:\Software\Classes\AltovaXML.Application\CLSID" -Name "(Default)" | select -Expand '(Default)'  
$dllpath = Get-ItemProperty "HKLM:\Software\Classes\Wow6432Node\CLSID\$GUID\LocalServer32" -Name '(Default)' | %{"$(Split-Path $_.'(Default)'.trim('"') -Parent)\Altova.AltovaXML.dll"}  
# NET Klassen aus DLL laden
Add-Type -Path $dllpath

# Altova XML Application Class-Object erzeugen
$class = New-Object Altova.AltovaXML.ApplicationClass
# Template zuweisen
$class.XSLT2.XSLFileName = $xsltemplate

# Jede XML-Datei im Quellordner verarbeiten und in das Zielverzeichnis ausgeben
gci $xmlsourcepath -Filter *.xml -File | %{
    try{
        write-host "Processing file '$($_.Name)' ... " -NoNewline  
        $class.XSLT2.InputXMLFileName = $_.FullName
        $class.XSLT2.Execute("$xmloutpath\$($_.Name)")  
        write-host "OK." -F Green  
        move-item $_.FullName -Destination $xmlarchive -Force | out-null
    }catch{
        write-host "Error: " + $_.Exception.Message -F Red  
    }
}

read-host "`nPress any Key to exit."  


Ich weiß, das ihr mir nicht die Arbeit machen könnt, aber vielleicht kann ein Expertenblick mir ein paar Tipps geben, zB. zur Erstellung einer ordentlichen xml oder bitte mal die ersten 5 Zeilen der xsl
überprüfen.

Ich bin für jeden Tipp dankbar.
Mit freundlichen Grüßen
usenussi

Content-ID: 400423

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

Ausgedruckt am: 22.11.2024 um 06:11 Uhr

138721
138721 05.02.2019 aktualisiert um 10:02:42 Uhr
Goto Top
Wende dich an einen Dienstleister, oder wenn dir das Wissen dazu fehlt eine Software wie Altova Mapforce.

Gruß l.

p.s. Na, hat sich der Anwalt schon gemeldet? Bei so einem Faux pas bezweifle ich das dir hier nochmal irgendjemand Hilfestellung für deine kommerziellen Probleme gibt.