Hej, Det är inte så att den övre är en xslt-fil och den undre själva xml-filen. Så den nedre filen skall innehålla data och den övre innehåller själva uttaget. Så det datat du lägger till nu, skall inte det finnas på varje post i det nedre blocket? Kan inte säga vilka selectors du ska använda utan att ha sett källdokumentet (och vad FMP-namespacet gör för nåt fiffigt), men nåt sånt härnt är kanske en början iaf: Hej Pelle. Hej Annelie, semester är aldrig fel. Kan du fr¨ån din filemaker skapa något som du sedan exporterar därifrån för att se hur det byggs upp? Hej igen, Det du behöver få reda på är hur källdokumentet ser ut - d.v.s. vad som matas in i xsl:en. Ett sätt är att byta ut xsl:en mot "identitets-xsl:en" som ser ut som följer: Prova att lägga in det här i din xsl:XML-fil
Tyvärr är jag helt novis på XML och hoppas därför på hjälp från någon snäll person.
Har en XML-fil för bekräftele av ordrar skapad i FileMaker och som ser ut enligt följande:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:FMP="http://www.filemaker.com/fmpdsoresult"
xmlns:ns0="http://YYYYY.BizTalk.YYYYYXMLOrderResponse_1_00"
exclude-result-prefixes="FMP">
<xsl:output version="1.0"
method="xml"
omit-xml-declaration="no"/>
<xsl:template match="FMP:FMPDSORESULT">
<ns0:Orderrespons>
<ns0:OrderResposeHeader>
<ns0:OrderResposeNumber>
<xsl:value-of select='FMP:ROW/FMP:OrderResposeNumber'/>
</ns0:OrderResposeNumber>
</ns0:OrderResposeHeader>
<xsl:for-each select="FMP:ROW">
<ns0:OrderResponseLine>
<ns0:LineNumber>
<xsl:value-of select='FMP:LineNumber'/>
</ns0:LineNumber>
<ns0:ProductID>
<ns0:ProductIDType>
<xsl:value-of select='FMP:ProductIDType'/>
</ns0:ProductIDType>
<ns0:Identifier>
<xsl:value-of select='FMP:Identifier'/>
</ns0:Identifier>
</ns0:ProductID>
</ns0:OrderResponseLine>
</xsl:for-each>
<ns0:OrderResponseTail>
<ns0:NumberOfLines>
<xsl:value-of select='FMP:ROW/FMP:NumberOfLines'/>
</ns0:NumberOfLines>
<ns0:UnitsShipping>
<xsl:value-of select='FMP:ROW/FMP:UnitsShipping'/>
</ns0:UnitsShipping>
</ns0:OrderResponseTail>
</ns0:Orderrespons>
</xsl:template>
</xsl:stylesheet>
Under
xmlns:ns0"http://YYYYY.BizTalk.YYYYYXMLOrderResponse_1_00"
skulle jag vilja få in en ny rad enligt följande:
<ns0:YYYYYHeaderPurchaseOrderNumber="194509227"BuyerEAN="73655622XXXXX" SupplierShortName="ZZZZZ" SupplierEAN="73655631XXXXX"/>
Lägger hela dokumentet sist i inlägget.
PurchaseOrderNumber är nytt för varje order som ska bekräftas.
BuyerEAN, SupplierShortName och SupplierEAN är samma varje gång.
(YYYYY, ZZZZZ och XXXX ersätter "äkta" värden/företagsuppgifter.)
Är det någon som har möjlighet att hjälpa mig med hur denna rad ska deklareras?
Tusen tack på förhand!
/Annelie
<?xml version="1.0"?>
<ns0:OrderResponse xmlns:ns0="http://YYYYY.BizTalk.YYYYYXMLOrderResponse_1_00"><ns0:YYYYYHeader PurchaseOrderNumber="194509227" BuyerEAN="736556229XXXXX" SupplierShortName="ZZZZZ" SupplierEAN="73655631XXXXX"/><ns0:OrderResponseHeader>
<ns0:OrderResponseLine>
<ns0:LineNumber>1</ns0:LineNumber>
<ns0:ProductID>
<ns0:ProductIDType>TYP12</ns0:ProductIDType>
<ns0:Identifier>1231118048696</ns0:Identifier>
</ns0:ProductID>
<ns0:QuantityShipping>1</ns0:QuantityShipping>
<ns0:Substitute>
<ns0:ProductID>
<ns0:ProductIDType>TYP12</ns0:ProductIDType>
<ns0:Identifier>1231118048696</ns0:Identifier>
</ns0:ProductID>
</ns0:Substitute>
</ns0:OrderResponseLine>
<ns0:OrderResponseLine>
<ns0:OrderResponseLine>
<ns0:LineNumber>3</ns0:LineNumber>
<ns0:ProductID>
<ns0:ProductIDType>TYP12</ns0:ProductIDType>
<ns0:Identifier>1230470932445</ns0:Identifier>
</ns0:ProductID>
<ns0:QuantityShipping>1</ns0:QuantityShipping>
<ns0:Substitute>
<ns0:ProductID>
<ns0:ProductIDType>TYP12</ns0:ProductIDType>
<ns0:Identifier>1230470932445</ns0:Identifier>
</ns0:ProductID>
</ns0:Substitute>
</ns0:OrderResponseLine>
<ns0:OrderResponseLine>
<ns0:LineNumber>13</ns0:LineNumber>
<ns0:ProductID>
<ns0:ProductIDType>TYP12</ns0:ProductIDType>
<ns0:Identifier>1230470545720</ns0:Identifier>
</ns0:ProductID>
<ns0:QuantityShipping>1</ns0:QuantityShipping>
<ns0:Substitute>
<ns0:ProductID>
<ns0:ProductIDType>TYP12</ns0:ProductIDType>
<ns0:Identifier>1230470545720</ns0:Identifier>
</ns0:ProductID>
</ns0:Substitute>
</ns0:OrderResponseLine>
<ns0:OrderResponseTail>
<ns0:NumberOfLines>13</ns0:NumberOfLines>
<ns0:UnitsShipping>10</ns0:UnitsShipping>
</ns0:OrderResponseTail>
</ns0:OrderResponse>
Sv: XML-fil
Sv: XML-fil
...
<ns0:Orderrespons>
<ns0:YYYYYHeader>
<xsl:attribute name="PurchaseOrderNumber">
<xsl:value-of select="/selector/for/PurchaseOrderNumber"/> <!-- Selector = FMP:ROW/FMP:PurchaseOrderNumber ? -->
</xsl:attribute>
<xsl:attribute name="BuyerEAN">
<xsl:value-of select="/selector/for/BuyerEAN"/> <!-- Selector = FMP:ROW/FMP:BuyerEAN ? -->
</xsl:attribute>
<!-- TODO: more attributes -->
</ns0:YYYYYHeader>
...
</ns0:Orderrespons>
Sv: XML-fil
Det blev en lång semsester för mig utan kontakt med datorn.
Jag har försökt lägga in svaret i min xslt fil men jag får inte det att funger fullt ut.
Jag exporterar poster från ett databasprogram som heter filemaker version 11.
DEn rad som jag får ut ser ut så här:
ns0:YYYYYHeader BuyerEAN="" PurchaseOrderNumber=""/>
Av någon annledning så fyller den inte i BuyerEAN eller PurchaseOrderNumber.
XSLTFIL
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:FMP="http://www.filemaker.com/fmpdsoresult"
xmlns:ns0="http://xxx.yyy.zzz_1_00"
exclude-result-prefixes="FMP">
<xsl:output version="1.0"
method="xml"
omit-xml-declaration="no"/>
<xsl:template match="FMP:FMPDSORESULT">
<ns0:Orderrespons>
<ns0:YYYYYHeader>
<xsl:attribute name="PurchaseOrderNumber">
<xsl:value-of select="/selector/for/PurchaseOrderNumber"/>
<!-- Selector = FMP:ROW/FMP:PurchaseOrderNumber ? -->
</xsl:attribute>
<xsl:attribute name="BuyerEAN">
<xsl:value-of select='FMP:BuyerEAN'/>
<!-- Selector = FMP:ROW/FMP:BuyerEAN ? -->
</xsl:attribute>
<!-- TODO: more attributes -->
</ns0:YYYYYHeader>
<xsl:for-each select="FMP:ROW">
<ns0:OrderResponseLine>
<ns0:LineNumber>
<xsl:value-of select='FMP:LineNumber'/>
</ns0:LineNumber>
<ns0:ProductID>
<ns0:ProductIDType>
<xsl:value-of select='FMP:ProductIDType'/>
</ns0:ProductIDType>
<ns0:Identifier>
<xsl:value-of select='FMP:Identifier'/>
</ns0:Identifier>
</ns0:ProductID>
</ns0:OrderResponseLine>
</xsl:for-each>
<ns0:OrderResponseTail>
<ns0:NumberOfLines>
<xsl:value-of select='FMP:ROW/FMP:NumberOfLines'/>
</ns0:NumberOfLines>
<ns0:UnitsShipping>
<xsl:value-of select='FMP:ROW/FMP:UnitsShipping'/>
</ns0:UnitsShipping>
</ns0:OrderResponseTail>
</ns0:Orderrespons>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
-<ns0:Orderrespons xmlns:ns0="http://xxx.yyy.zzz_1_00">
<ns0:YYYYYHeader BuyerEAN="" PurchaseOrderNumber=""/>-<ns0:OrderResponseLine>
<ns0:LineNumber>3</ns0:LineNumber>-<ns0:ProductID>
<ns0:ProductIDType>kkk</ns0:ProductIDType>
<ns0:Identifier>1213</ns0:Identifier>
</ns0:ProductID>
</ns0:OrderResponseLine>-<ns0:OrderResponseTail>
<ns0:NumberOfLines>1</ns0:NumberOfLines>
<ns0:UnitsShipping>4</ns0:UnitsShipping>
</ns0:OrderResponseTail>
</ns0:Orderrespons>Sv:XML-fil
Sv: XML-fil
Här kommer ett försök.....
Identifier LineNumber NumberOfLines OrderResponseLine OrderResposeNumber ProductIDType Substitute UnitsShipping BuyerEAN SupplierEAN SupplierShortName xxxx PurcaseOrderNumber
1213 3 1 2 1 kkk 1225 4 222 444 333 111 Sv:XML-fil
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Det den ska göra är alltså att helt enkelt kopiera indata -> utdata rakt av. Därefter bör vi kunna lista ut vilka selectors som ska in i mitt tidigare exempel.
Ref: http://en.wikipedia.org/wiki/Identity_transform
Sv: XML-fil
Tack för att du tar Dig tid!!
Jag kan välja nedanstående två varianter.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Denna grammatik avråds - använd FMPXMLRESULT i stället -->
<FMPDSORESULT xmlns="http://www.filemaker.com/fmpdsoresult">
<ERRORCODE>0</ERRORCODE>
<DATABASE>database0125.fp7</DATABASE>
<LAYOUT/><ROW MODID="1" RECORDID="1">
<Identifier>1213</Identifier>
<LineNumber>3</LineNumber>
<NumberOfLines>1</NumberOfLines>
<OrderResponseLine>2</OrderResponseLine>
<OrderResposeNumber>1</OrderResposeNumber>
<ProductIDType>kkk</ProductIDType>
<Substitute>1225</Substitute>
<UnitsShipping>4</UnitsShipping>
<BuyerEAN>222</BuyerEAN>
<SupplierEAN>444</SupplierEAN>
<SupplierShortName>333</SupplierShortName>
<xxxx_PurcaseOrderNumber>111</xxxx_PurcaseOrderNumber>
</ROW>
</FMPDSORESULT>
<?xml version="1.0" encoding="UTF-8"?>
-<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
<ERRORCODE>0</ERRORCODE>
<PRODUCT VERSION="Pro 11.0v3" NAME="FileMaker" BUILD="01-25-2011"/>
<DATABASE NAME="database0125.fp7" TIMEFORMAT="k:mm:ss " RECORDS="1" LAYOUT="" DATEFORMAT="Yyyy-m-d"/>-<METADATA>
<FIELD NAME="Identifier" TYPE="TEXT" MAXREPEAT="1" EMPTYOK="YES"/>
<FIELD NAME="LineNumber" TYPE="TEXT" MAXREPEAT="1" EMPTYOK="YES"/>
<FIELD NAME="NumberOfLines" TYPE="TEXT" MAXREPEAT="1" EMPTYOK="YES"/>
<FIELD NAME="OrderResponseLine" TYPE="TEXT" MAXREPEAT="1" EMPTYOK="YES"/>
<FIELD NAME="OrderResposeNumber" TYPE="TEXT" MAXREPEAT="1" EMPTYOK="YES"/>
<FIELD NAME="ProductIDType" TYPE="TEXT" MAXREPEAT="1" EMPTYOK="YES"/>
<FIELD NAME="Substitute" TYPE="TEXT" MAXREPEAT="1" EMPTYOK="YES"/>
<FIELD NAME="UnitsShipping" TYPE="TEXT" MAXREPEAT="1" EMPTYOK="YES"/>
<FIELD NAME="BuyerEAN" TYPE="TEXT" MAXREPEAT="1" EMPTYOK="YES"/>
<FIELD NAME="SupplierEAN" TYPE="TEXT" MAXREPEAT="1" EMPTYOK="YES"/>
<FIELD NAME="SupplierShortName" TYPE="TEXT" MAXREPEAT="1" EMPTYOK="YES"/>
<FIELD NAME="xxxx PurcaseOrderNumber" TYPE="TEXT" MAXREPEAT="1" EMPTYOK="YES"/>
</METADATA>-<RESULTSET FOUND="1">-<ROW RECORDID="1" MODID="1">-<COL>
<DATA>1213</DATA>
</COL>-<COL>
<DATA>3</DATA>
</COL>-<COL>
<DATA>1</DATA>
</COL>-<COL>
<DATA>2</DATA>
</COL>-<COL>
<DATA>1</DATA>
</COL>-<COL>
<DATA>kkk</DATA>
</COL>-<COL>
<DATA>1225</DATA>
</COL>-<COL>
<DATA>4</DATA>
</COL>-<COL>
<DATA>222</DATA>
</COL>-<COL>
<DATA>444</DATA>
</COL>-<COL>
<DATA>333</DATA>
</COL>-<COL>
<DATA>111</DATA>
</COL></ROW>
</RESULTSET>
</FMPXMLRESULT>Sv:XML-fil
<ns0:YYYYYHeader>
<xsl:attribute name="PurchaseOrderNumber">
<xsl:value-of select="FMP:ROW/FMP:xxxx PurchaseOrderNumber"/>
<!--alt. select="FMP:ROW/FMP:'xxxx PurchaseOrderNumber'", eller select="FMP:ROW/FMP:xxxx_PurchaseOrderNumber" eller nåt sånt-->
</xsl:attribute>
<xsl:attribute name="BuyerEAN">
<xsl:value-of select="FMP:ROW/FMP:BuyerEAN"/>
</xsl:attribute>
<xsl:attribute name="SupplierShortName">
<xsl:value-of select="FMP:ROW/FMP:SupplierShortName"/>
</xsl:attribute>
<xsl:attribute name="SupplierEAN">
<xsl:value-of select="FMP:ROW/FMP:SupplierEAN"/>
</xsl:attribute>
</ns0:YYYYYHeader>