Ga naar inhoud
  • 0

Hoe schrijf ik een XLST voor deze XML


mykarizma

Vraag

Beste mensen,

 

Ik heb een XML waarin de OfferteHeader en daarna OfferteRegels er in staan. Dus 1 bestand met 2 tabellen.

 

Ik probeer deze binnen FileMaker te importeren maar dat gaat niet zonder een XLST.

 

En bij deze vraag ik graag om uw hulp.

 

<?xml version="1.0" encoding="UTF-8"?>
<cart>
    <cartHeader>
        <storeOrgName>Oracle Luxembourg SARL</storeOrgName>
        <cartExportDate>Thu Apr 06 00:53:34 PST 2017</cartExportDate>
        <cartID>4624661</cartID>
        <cartName>Digora_Metered Test</cartName>
        <cartStatus>OPEN</cartStatus>
        <billtoCompanyName/>
        <resellerCompanyName>DIGORA LUXEMBOURG</resellerCompanyName>
        <shiptoCompanyName/>
        <enduserCompanyName/>
        <currencyName>Euro</currencyName>
        <currencyCode>EUR</currencyCode>
        <customerQuoteDate>Wed Apr 05 15:00:00 PST 2017</customerQuoteDate>
        <additionDiscountQuoteID/>
        <opportunityID>6ND2D</opportunityID>
        <secondYearSupportAmount/>
        <supportServiceDuration>1 Year</supportServiceDuration>
        <shipToState/>
        <shipToCountryName/>
        <shipToCountryCode/>
        <shipmentType/>
        <cartTotalNet>8500.00</cartTotalNet>
        <cartTotalList>8500.00</cartTotalList>
        <approvalInfo/>
        <adrApprovedDate/>
        <installationCountryName/>
        <installationCountryCode/>
        <freightTotal/>
        <supportTotal/>
        <TransactionType>VAD - Cloud</TransactionType>
        <ACSTotal/>
        <ResellRightValidation>PASS</ResellRightValidation>
        <PublicSector>N</PublicSector>
        <DataCenter/>
        <InvoicingFrequency>Pay In Full</InvoicingFrequency>
        <SubscriptionTerm>1 Year</SubscriptionTerm>
        <AutoRenewFlag>N</AutoRenewFlag>
        <SubscriptionStartDate/>
        <CsiNumber/>
    </cartHeader>
    <cartLines>
        <lineItem isModelLine="false" isDomainLine="false" isProductLine="true"
            isSupportLine="false" isShippingHandlingLine="false">
            <cartLineNumber>1.1</cartLineNumber>
            <partNumber>B77077</partNumber>
            <partDescription>Oracle IaaS Public Cloud Services</partDescription>
            <discountCategory>LIC EXC</discountCategory>
            <unitListPrice>1.00</unitListPrice>
            <standardDiscountPercent/>
            <customDiscount/>
            <UAPDiscountPercent/>
            <additionalDiscountPercent/>
            <unitNetPrice>1.00</unitNetPrice>
            <priceOverrideFlag/>
            <quantity>10000</quantity>
            <extendedNetPrice>10000</extendedNetPrice>
            <extendedListPrice>10000</extendedListPrice>
            <configID/>
            <EndUserAgmtType/>
            <OLSARequired/>
            <UAPAllowanceCode/>
            <PaymentTerm/>
            <resellRightValidation>PASS</resellRightValidation>
            <crossReferenceLineNumber/>
            <LicensingMetric>CURRENCY UNIT</LicensingMetric>
            <RateCardID/>
            <SubscriptionId/>
            <SubscriptionType>New Subscription</SubscriptionType>
            <DataCenter>European Union</DataCenter>
        </lineItem>
        <lineItem isModelLine="false" isDomainLine="false" isProductLine="true"
            isSupportLine="false" isShippingHandlingLine="false">
            <cartLineNumber>1.2.1</cartLineNumber>
            <partNumber>B81270</partNumber>
            <partDescription>Oracle IaaS Public Cloud Services - Partner Resale
                Credit</partDescription>
            <discountCategory>LIC EXC</discountCategory>
            <unitListPrice>0.00</unitListPrice>
            <standardDiscountPercent/>
            <customDiscount/>
            <UAPDiscountPercent/>
            <additionalDiscountPercent/>
            <unitNetPrice>-1500.00</unitNetPrice>
            <priceOverrideFlag/>
            <quantity>1</quantity>
            <extendedNetPrice>-1500</extendedNetPrice>
            <extendedListPrice>-1500</extendedListPrice>
            <configID/>
            <EndUserAgmtType/>
            <OLSARequired/>
            <UAPAllowanceCode/>
            <PaymentTerm/>
            <resellRightValidation>PASS</resellRightValidation>
            <crossReferenceLineNumber>1.1</crossReferenceLineNumber>
            <LicensingMetric>EACH</LicensingMetric>
            <RateCardID/>
            <SubscriptionId/>
            <SubscriptionType/>
            <DataCenter>European Union</DataCenter>
        </lineItem>
    </cartLines>
</cart>
 
Link naar reactie

5 antwoorden op deze vraag

Aanbevolen berichten

  • 0
Ik gebruik toch vaak de tekstfuncties van FMP om de boel te parsen, vooral substitute() en getvalue().

Dus: bestand inlezen met de BE plugin en dan verder alles lokaal processen. Er is bij briandunning.com een handige custom function die de inhoud van een XML tag isoleert, ben de naam even kwijt.

Dat vind ik dan toch een beetje jammer, want met het voorbeeldje dat ik heb gepost kan je in minder dan 10 minuten 2 xsl's maken die afzonderlijk de "cart" die OP hier heeft gepost omzetten naar voor FM begrijpelijke XML.

 

Uiteraard zal dat de eerste keer niet lukken, maar als je x-path begrijpt is het een kwestie van invullen, ff proberen in een parser en gaan ...

Archief.zip

Link naar reactie
  • 0

Ik ben het hierover volmondig eens met Menno. Daarbij komt dat XPath veel functies heeft waardoor je vooraf via de XSLT al heel wat data in een goede vorm kunt brengen. Dit gaat iha razend snel waardoor je ook grote documenten in een oogwenk kunt inlezen.

 

Voor wie XPath onvoldoende machtig is kan de onderstaande link naar w3schools een goed startpunt zijn: https://www.w3schools.com/xml/xpath_intro.asp

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...