XSLT Datei übergibt mir keine Dateninhalte
Zum lernen habe ich vorher den Tag <Address> einzeln im Online XSLT TEST Tool getestet und es hat funktioniert. Nun habe ich die Datei erweitert und ich komme nicht an die Daten. Es beginnt schon mit der ersten Zeile
<MessageID>1</MessageID> wollte ich mit
<MessageID><xsl:value-of select="MessageID"/1</MessageID>
übernehmen. und dann die anderen Zeilen genauso aufbauen.
Was mache ich falsch?
Es hat doch einzeln mit
<Address>
<Name><xsl:value-of select="NAME"/></Name>
geklappt.
Bitte helft einen Anfänger auf Sprünge.
Da ich die XML Date immer als Order mit verschiedenen Nummern bekomme zb. ORDER12345 wollte ich diese grundsätzlich auf ORDER.XML umbenennen.
Muss die XSLT im gleichen Verzeichniss ORDER.XSLT heißen?
ORDER.XML
<?xml version="1.0" encoding="UTF-8"?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
<Header>
<DocumentVersion>1.01</DocumentVersion>
<MerchantIdentifier>M_SCHOxxxREI_5062692</MerchantIdentifier>
</Header>
<MessageType>OrderReport</MessageType>
<Message>
<MessageID>1</MessageID>
<OrderReport>
<AmazonOrderID>305-9924129-4xxx332</AmazonOrderID>
<AmazonSessionID>305-9924129-4xxx332</AmazonSessionID>
<OrderDate>2017-03-13T21:02:46+00:00</OrderDate>
<OrderPostedDate>2017-03-13T21:02:46+00:00</OrderPostedDate>
<BillingData>
<AlreadyPaid/>
<BuyerEmailAddress>cwsj51h32lk765k@marketplace.amazon.de</BuyerEmailAddress>
<BuyerName>Kathrin Muster</BuyerName>
<BuyerPhoneNumber>0171 xxxxxx6</BuyerPhoneNumber>
<Address>
<Name>KATHRIN Muster</Name>
<AddressFieldOne>RINNWEG 6</AddressFieldOne>
<City>FULDA</City>
<StateOrRegion>HESSEN</StateOrRegion>
<PostalCode>3xxx</PostalCode>
<CountryCode>DE</CountryCode>
<PhoneNumber>0171xxxxxx</PhoneNumber>
</Address>
</BillingData>
<FulfillmentData>
<FulfillmentMethod>Ship</FulfillmentMethod>
<FulfillmentServiceLevel>Standard</FulfillmentServiceLevel>
<ShipServiceName>Std DE Dom</ShipServiceName>
<Address>
<Name>KATHRIN Muster</Name>
<AddressFieldOne>RINNWEG 6</AddressFieldOne>
<City>FULDA</City>
<StateOrRegion>HESSEN</StateOrRegion>
<PostalCode>3xxx7</PostalCode>
<CountryCode>DE</CountryCode>
<PhoneNumber>0171xxxxx6</PhoneNumber>
</Address>
</FulfillmentData>
<Item>
<AmazonOrderItemCode>18319xxx312747</AmazonOrderItemCode>
<SKU>4260257181303</SKU>
<Title>Brunner Campingbedarf Frischwassertankreiniger H11 Plus, 37834</Title>
<CustomizationInfo>
<Type>Condition</Type>
<Data>new</Data>
</CustomizationInfo>
<CustomizationInfo>
<Type>DateListed</Type>
<Data>2014-05-14T08:11:43+00:00</Data>
</CustomizationInfo>
<CustomizationInfo>
<Type>MarketplaceID</Type>
<Data>A1PA6795UKMFR9</Data>
</CustomizationInfo>
<CustomizationInfo>
<Type>CompoundTitle</Type>
<Data>Brunner Campingbedarf Frischwassertankreiniger H11 Plus, 37834 [Ausrüstung]</Data>
</CustomizationInfo>
<CustomizationInfo>
<Type>ListingID</Type>
<Data>0514OS4VI04</Data>
</CustomizationInfo>
<CustomizationInfo>
<Type>ConditionType</Type>
<Data>new</Data>
</CustomizationInfo>
<CustomizationInfo>
<Type>points_granted</Type>
<Data>0</Data>
</CustomizationInfo>
<Quantity>1</Quantity>
<ProductTaxCode>PTC_PRODUCT_TAXABLE_A</ProductTaxCode>
<ItemPrice>
<Component>
<Type>Principal</Type>
<Amount currency="EUR">13.01</Amount>
</Component>
<Component>
<Type>Shipping</Type>
<Amount currency="EUR">3.90</Amount>
</Component>
<Component>
<Type>Tax</Type>
<Amount currency="EUR">0.00</Amount>
</Component>
<Component>
<Type>ShippingTax</Type>
<Amount currency="EUR">0.00</Amount>
</Component>
<Component>
<Type>CODFee</Type>
<Amount currency="EUR">0.00</Amount>
</Component>
<Component>
<Type>VatExclusiveItemPrice</Type>
<Amount currency="EUR">13.01</Amount>
</Component>
<Component>
<Type>VatExclusiveShippingPrice</Type>
<Amount currency="EUR">3.90</Amount>
</Component>
</ItemPrice>
<ItemFees>
<Fee>
<Type>Commission</Type>
<Amount currency="EUR">-2.54</Amount>
</Fee>
</ItemFees>
<IsAmazonInvoiced>false</IsAmazonInvoiced>
</Item>
</OrderReport>
</Message>
<Message>
<MessageID>2</MessageID>
<OrderReport>
<AmazonOrderID>306-40xxx84-9121960</AmazonOrderID>
<AmazonSessionID>306-40xxx84-9121960</AmazonSessionID>
<OrderDate>2017-03-13T21:02:48+00:00</OrderDate>
<OrderPostedDate>2017-03-13T21:02:48+00:00</OrderPostedDate>
<BillingData>
<AlreadyPaid/>
<BuyerEmailAddress>xxxr3zhrnb63bz5@marketplace.amazon.de</BuyerEmailAddress>
<BuyerName>Matthias Muster</BuyerName>
<BuyerPhoneNumber>095xxxxx4</BuyerPhoneNumber>
<Address>
<Name>MATTHIAS Muster</Name>
<AddressFieldOne>BACH 7</AddressFieldOne>
<City>RECKENDORF</City>
<StateOrRegion>Bayern</StateOrRegion>
<PostalCode>96xx2</PostalCode>
<CountryCode>DE</CountryCode>
<PhoneNumber>09xxxx50644</PhoneNumber>
</Address>
</BillingData>
<FulfillmentData>
<FulfillmentMethod>Ship</FulfillmentMethod>
<FulfillmentServiceLevel>Standard</FulfillmentServiceLevel>
<ShipServiceName>Std DE Dom</ShipServiceName>
<Address>
<Name>MATTHIASMuster</Name>
<AddressFieldOne>BACH 7</AddressFieldOne>
<City>RECKENDORF</City>
<StateOrRegion>Bayern</StateOrRegion>
<PostalCode>9xxx2</PostalCode>
<CountryCode>DE</CountryCode>
<PhoneNumber>09xxxx50644</PhoneNumber>
</Address>
</FulfillmentData>
<Item>
<AmazonOrderItemCode>14171xxx166235</AmazonOrderItemCode>
<SKU>4260257181303</SKU>
<Title>Brunner Campingbedarf Frischwassertankreiniger H11 Plus, 37834</Title>
<CustomizationInfo>
<Type>Condition</Type>
<Data>new</Data>
</CustomizationInfo>
<CustomizationInfo>
<Type>DateListed</Type>
<Data>2014-05-14T08:11:43+00:00</Data>
</CustomizationInfo>
<CustomizationInfo>
<Type>MarketplaceID</Type>
<Data>A1PAxxx5UKMFR9</Data>
</CustomizationInfo>
<CustomizationInfo>
<Type>CompoundTitle</Type>
<Data>Brunner Campingbedarf Frischwassertankreiniger H11 Plus, 37834 [Ausrüstung]</Data>
</CustomizationInfo>
<CustomizationInfo>
<Type>ListingID</Type>
<Data>0514OS4VI04</Data>
</CustomizationInfo>
<CustomizationInfo>
<Type>ConditionType</Type>
<Data>new</Data>
</CustomizationInfo>
<CustomizationInfo>
<Type>points_granted</Type>
<Data>0</Data>
</CustomizationInfo>
<Quantity>1</Quantity>
<ProductTaxCode>PTC_PRODUCT_TAXABLE_A</ProductTaxCode>
<ItemPrice>
<Component>
<Type>Principal</Type>
<Amount currency="EUR">13.01</Amount>
</Component>
<Component>
<Type>Shipping</Type>
<Amount currency="EUR">3.90</Amount>
</Component>
<Component>
<Type>Tax</Type>
<Amount currency="EUR">0.00</Amount>
</Component>
<Component>
<Type>ShippingTax</Type>
<Amount currency="EUR">0.00</Amount>
</Component>
<Component>
<Type>CODFee</Type>
<Amount currency="EUR">0.00</Amount>
</Component>
<Component>
<Type>VatExclusiveItemPrice</Type>
<Amount currency="EUR">13.01</Amount>
</Component>
<Component>
<Type>VatExclusiveShippingPrice</Type>
<Amount currency="EUR">3.90</Amount>
</Component>
</ItemPrice>
<ItemFees>
<Fee>
<Type>Commission</Type>
<Amount currency="EUR">-2.54</Amount>
</Fee>
</ItemFees>
<IsAmazonInvoiced>false</IsAmazonInvoiced>
</Item>
</OrderReport>
</Message>
</AmazonEnvelope>
ORDER.XSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
<xsl:template match="/">
<Root>
<Header>
<DocumentVersion>1.01</DocumentVersion>
<MerchantIdentifier>M_SCHOXXXREI_50xxx92</MerchantIdentifier>
</Header>
<MessageType>OrderReport</MessageType>
<Message>
<MessageID><xsl:value-of select="MessageID"/1</MessageID>
<OrderReport>
<OrderReport>
<xsl:for-each select="Root/OrderReport">
<OrderReport>
<AmazonOrderID><xsl:value-of select="OrderReportFieldOne"/></AmazonOrderID>
<AmazonSessionID><xsl:value-of select="AmazonSessionID"/></AmazonSessionID>
<OrderDate><xsl:value-of select="PostalCode"/></OrderDate>
<OrderPostedDate><xsl:value-of select="OrderPostedDateCode"/></OrderPostedDate>
<PHONE><xsl:value-of select="PhoneNumber"/></PHONE>
<EMAIL><xsl:value-of select=" EMAIL"/></EMAIL>
</OrderReport>
</xsl:for-each>
</OrderReport>
<BillingData>
<AlreadyPaid/>
<BuyerEmailAddress><xsl:value-of select=" EMAIL"/></BuyerEmailAddress>
<BuyerName><xsl:value-of select="NAME"/></BuyerName>
<BuyerPhoneNumber><xsl:value-of select=" Phone"/></BuyerPhoneNumber>
<Address>
<xsl:for-each select="Root/Address">
<Address>
<Name><xsl:value-of select="NAME"/></Name>
<STREET><xsl:value-of select="AddressFieldOne"/></STREET>
<CITY><xsl:value-of select="City"/></CITY>
<ZIP><xsl:value-of select="PostalCode"/></ZIP>
<COUNTRY><xsl:value-of select="CountryCode"/></COUNTRY>
<PHONE><xsl:value-of select="PhoneNumber"/></PHONE>
<EMAIL>Wertinfo@rsn-nord.de</EMAIL>
</Address>
</xsl:for-each>
</Address>
</BillingData>
</OrderReport>
</Message>
</Root>
</xsl:template>
</xsl:stylesheet>
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 340206
Url: https://administrator.de/contentid/340206
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
4 Kommentare
Neuester Kommentar
Ist ja auch logisch, weil erstens einige Syntaxfehler im Skript sind und zweitens die xPath Selection nicht stimmt. Du hast ja am Anfang ein TemplateMatch auf das Root (/) gesetzt, also musst du auch von da aus Slektieren. Da du aber mehrere Messages hast musst du diese ja erst mal mit einem for-each alle erfassen, was du oben ja überhaupt nicht mit den Messages machst.
Du solltest dich erst mal mit den Grundlagen von XPath auseinandersetzen, das wäre vielleicht zielgerichteter als Querbeet zu arbeiten, was man deinen vorherigen Posts entnehmen kann in denen du leider nicht weiter geantwortet hast ...
Gruß bibersbaum
Du solltest dich erst mal mit den Grundlagen von XPath auseinandersetzen, das wäre vielleicht zielgerichteter als Querbeet zu arbeiten, was man deinen vorherigen Posts entnehmen kann in denen du leider nicht weiter geantwortet hast ...
Gruß bibersbaum
Servus @usenussi,
mal wieder zum selben Thema das hier schon mal vor 2 Monaten von dir kam.
[OT]
Finde ich ehrlich gesagt schade, dass du unsere letzte private Konversation einfach so kommentarlos abgebrochen hast, zumal ich dir hätte weiterhelfen können, aber na gut, manch einer lernt es halt nie. Schade.
[/OT]
Hiermit solltest du mal ein Grundgerüst für das oben genannte haben (Todos sind natürlich noch für dich drin). (Ohne Garantie für einen Import, da ich hier deine verwendete Software nicht habe und so nicht testen kann. Wenn du mich bezahlst hol ich das gerne nach.)
Der Aufbau sollte dir ein Idee geben wie man das grundlegend macht.
Mehr kann ich für dich hier nicht tun.
Grüße Uwe
p.s. Eine Begrüßung tut eigentlich niemandem weh. Hier arbeiten ja immerhin noch Menschen und keine Maschinen die sich mit deinem Anliegen auseinandersetzen.
mal wieder zum selben Thema das hier schon mal vor 2 Monaten von dir kam.
[OT]
Finde ich ehrlich gesagt schade, dass du unsere letzte private Konversation einfach so kommentarlos abgebrochen hast, zumal ich dir hätte weiterhelfen können, aber na gut, manch einer lernt es halt nie. Schade.
[/OT]
Hiermit solltest du mal ein Grundgerüst für das oben genannte haben (Todos sind natürlich noch für dich drin). (Ohne Garantie für einen Import, da ich hier deine verwendete Software nicht habe und so nicht testen kann. Wenn du mich bezahlst hol ich das gerne nach.)
Der Aufbau sollte dir ein Idee geben wie man das grundlegend macht.
Mehr kann ich für dich hier nicht tun.
Grüße Uwe
p.s. Eine Begrüßung tut eigentlich niemandem weh. Hier arbeiten ja immerhin noch Menschen und keine Maschinen die sich mit deinem Anliegen auseinandersetzen.
Achtung XSLT 2.0!
<?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="UTF-8" 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="current-dateTime()"/></GENERATION_DATE>
</CONTROL_INFO>
<ORDER_INFO>
<ORDER_ID><xsl:value-of select="OrderReport/AmazonOrderID"/></ORDER_ID>
<ORDER_DATE><xsl:value-of select="OrderReport/OrderDate"/></ORDER_DATE>
<ORDER_PARTIES>
<BUYER_PARTY>
<PARTY>
<ADDRESS>
<NAME><xsl:value-of select="OrderReport/BillingData/Address/Name"/></NAME>
<STREET><xsl:value-of select="OrderReport/BillingData/Address/AddressFieldOne"/></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>
<PHONE type="other"><xsl:value-of select="OrderReport/BillingData/Address/PhoneNumber"/></PHONE>
<FAX/>
<EMAIL><xsl:value-of select="OrderReport/BillingData/BuyerEmailAddress"/></EMAIL>
</ADDRESS>
</PARTY>
</BUYER_PARTY>
<INVOICE_PARTY>
<PARTY>
<ADDRESS>
<NAME><xsl:value-of select="OrderReport/FulfillmentData/Address/Name"/></NAME>
<STREET><xsl:value-of select="OrderReport/FulfillmentData/Address/AddressFieldOne"/></STREET>
<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="OrderReport/FulfillmentData/Address/CountryCode"/></COUNTRY>
<PHONE type="other"><xsl:value-of select="OrderReport/FulfillmentData/Address/PhoneNumber"/></PHONE>
<FAX/>
<EMAIL/>
</ADDRESS>
</PARTY>
</INVOICE_PARTY>
</ORDER_PARTIES>
<PRICE_CURRENCY>EUR</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="AmazonOrderItemCode" /></SUPPLIER_AID>
<DESCRIPTION_SHORT><xsl:value-of select="Title" /></DESCRIPTION_SHORT>
<DESCRIPTION_LONG><xsl:value-of select="Title" /></DESCRIPTION_LONG>
</ARTICLE_ID>
<QUANTITY><xsl:value-of select="Quantity" /></QUANTITY>
<ORDER_UNIT>1</ORDER_UNIT>
<ARTICLE_PRICE type="gros_list">
<PRICE_AMOUNT><xsl:value-of select="ItemPrice/Component[Type='Principal']/Amount" /></PRICE_AMOUNT>
<PRICE_LINE_AMOUNT><xsl:value-of select="ItemPrice/Component[Type='Principal']/Amount" /></PRICE_LINE_AMOUNT>
<TAX>[TODO]</TAX>
</ARTICLE_PRICE>
</ORDER_ITEM>
</xsl:for-each>
</ORDER_ITEM_LIST>
<ORDER_SUMMARY>
<TOTAL_ITEM_NUM>[TODO]</TOTAL_ITEM_NUM>
<TOTAL_AMOUNT>[TODO]</TOTAL_AMOUNT>
</ORDER_SUMMARY>
</ORDER>
</xsl:for-each>
</ORDER_LIST>
</xsl:template>
</xsl:stylesheet>