我输入了像
这样的XML<?xml version="1.0" encoding="utf-8"?>
<Document
xsi:schemaLocation="http://rep.evenex.dk/schema/evenex/eBusiness_01 http://rep.evenex.dk/schema/evenex/eBusiness_01/e-commerce_101.xsd"
Version="101" System="HubBroker" SystemVersion="7.00.3.71.03"
xmlns="http://rep.evenex.dk/schema/evenex/eBusiness_01"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Header>
<SenderEndpointID qualifier="EAN">1234567899338</SenderEndpointID>
<ReceiverEndpointID qualifier="EAN">1234567899338</ReceiverEndpointID>
<CreatedDate>2016-12-01</CreatedDate>
<CreatedTime>12:25:59</CreatedTime>
<EDIRefNo>16936</EDIRefNo>
<Test>false</Test>
<AcknowledgementRequest>Yes</AcknowledgementRequest>
<MailBounce>false</MailBounce>
</Header>
<Body>
<DispatchReference>16936</DispatchReference>
<DocumentType>DESADV</DocumentType>
<DocumentNo>16936</DocumentNo>
<DocumentDate>2016-12-01</DocumentDate>
<ShipmentDate>2016-12-01</ShipmentDate>
<ExternalDocumentNo>100697854</ExternalDocumentNo>
<PayableAmount>0.00</PayableAmount>
<TaxInclusiveAmount>0.00</TaxInclusiveAmount>
<TotalItemAmount>0.00</TotalItemAmount>
<Parties>
<Party type="Sellto">
<No>1234567899338</No>
<Name></Name>
<Address></Address>
<Address2></Address2>
<City></City>
<PostCode></PostCode>
<CountryRegionCode></CountryRegionCode>
<ContactEmail></ContactEmail>
</Party>
<Party type="Shipto">
<No>1234567899338</No>
</Party>
<Party type="Billto">
<No>1234567899338</No>
<Name>asd</Name>
<Address />
<Address2>asd DU asd 13</Address2>
<City>København K</City>
<PostCode>1050</PostCode>
<CountryRegionCode>DK</CountryRegionCode>
</Party>
<Party type="Supplier">
<No>5790000718825</No>
<Name>asd ApS</Name>
<Address></Address>
<Address2>asd 66</Address2>
<City>as NV</City>
<PostCode>2400</PostCode>
<CountryRegionCode>DK</CountryRegionCode>
<VATRegNo></VATRegNo>
<Contact></Contact>
<ContactPhoneNo></ContactPhoneNo>
<ContactFaxNo></ContactFaxNo>
<ContactEmail></ContactEmail>
</Party>
</Parties>
<Lines>
<Line>
<LineNo>1</LineNo>
<EANNo>761318024156</EANNo>
<ItemNo>761318024156</ItemNo>
<Description>REVLON Glattejern</Description>
<Description2>REVLON Glattejern</Description2>
<Quantity>18.00</Quantity>
<UnitofMeasure>PCE</UnitofMeasure>
<UnitPrice>.00</UnitPrice>
<Amount>18.00</Amount>
<LineExtensionAmount>0.00</LineExtensionAmount>
</Line>
<Line>
<LineNo>2</LineNo>
<EANNo>761318135272</EANNo>
<ItemNo>761318135272</ItemNo>
<Description>REVLON Manicure og pedicure sæt</Description>
<Description2>REVLON Manicure og pedicure sæt</Description2>
<Quantity>6.00</Quantity>
<UnitofMeasure>PCE</UnitofMeasure>
<UnitPrice>.00</UnitPrice>
<Amount>6.00</Amount>
<LineExtensionAmount>0.00</LineExtensionAmount>
</Line>
<Line>
<LineNo>3</LineNo>
<EANNo>761318364740</EANNo>
<ItemNo>761318364740</ItemNo>
<Description>REVLON Varmluftskrøllejern</Description>
<Description2>REVLON Varmluftskrøllejern</Description2>
<Quantity>6.00</Quantity>
<UnitofMeasure>PCE</UnitofMeasure>
<UnitPrice>.00</UnitPrice>
<Amount>6.00</Amount>
<LineExtensionAmount>0.00</LineExtensionAmount>
</Line>
<Line>
<LineNo>4</LineNo>
<EANNo>5996415024715</EANNo>
<ItemNo>5996415024715</ItemNo>
<Description>MOSER Hårklipper Lithium Pro LED</Description>
<Description2>MOSER Hårklipper Lithium Pro LED</Description2>
<Quantity>5.00</Quantity>
<UnitofMeasure>PCE</UnitofMeasure>
<UnitPrice>.00</UnitPrice>
<Amount>5.00</Amount>
<LineExtensionAmount>0.00</LineExtensionAmount>
</Line>
<Line>
<LineNo>5</LineNo>
<EANNo>5996415024739</EANNo>
<ItemNo>5996415024739</ItemNo>
<Description>MOSER Hårklipper Lithium Pro LCD</Description>
<Description2>MOSER Hårklipper Lithium Pro LCD</Description2>
<Quantity>3.00</Quantity>
<UnitofMeasure>PCE</UnitofMeasure>
<UnitPrice>.00</UnitPrice>
<Amount>3.00</Amount>
<LineExtensionAmount>0.00</LineExtensionAmount>
</Line>
</Lines>
</Body>
</Document>
如果长度小于13个字符,我想更改EANNO,ItemNo字段以添加前导零。规则应适用于所有行标记
所以对于前者,如果EANNO&#34; 761318024156&#34;然后在输出文件中它应该是&#34; 0761318024156&#34;
所以最终输出应该如下所示
<?xml version="1.0" encoding="utf-8"?>
<Document
xsi:schemaLocation="http://rep.evenex.dk/schema/evenex/eBusiness_01 http://rep.evenex.dk/schema/evenex/eBusiness_01/e-commerce_101.xsd"
Version="101" System="HubBroker" SystemVersion="7.00.3.71.03"
xmlns="http://rep.evenex.dk/schema/evenex/eBusiness_01"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Header>
<SenderEndpointID qualifier="EAN">1234567899338</SenderEndpointID>
<ReceiverEndpointID qualifier="EAN">1234567899338</ReceiverEndpointID>
<CreatedDate>2016-12-01</CreatedDate>
<CreatedTime>12:25:59</CreatedTime>
<EDIRefNo>16936</EDIRefNo>
<Test>false</Test>
<AcknowledgementRequest>Yes</AcknowledgementRequest>
<MailBounce>false</MailBounce>
</Header>
<Body>
<DispatchReference>16936</DispatchReference>
<DocumentType>DESADV</DocumentType>
<DocumentNo>16936</DocumentNo>
<DocumentDate>2016-12-01</DocumentDate>
<ShipmentDate>2016-12-01</ShipmentDate>
<ExternalDocumentNo>100697854</ExternalDocumentNo>
<PayableAmount>0.00</PayableAmount>
<TaxInclusiveAmount>0.00</TaxInclusiveAmount>
<TotalItemAmount>0.00</TotalItemAmount>
<Parties>
<Party type="Sellto">
<No>1234567899338</No>
<Name></Name>
<Address></Address>
<Address2></Address2>
<City></City>
<PostCode></PostCode>
<CountryRegionCode></CountryRegionCode>
<ContactEmail></ContactEmail>
</Party>
<Party type="Shipto">
<No>1234567899338</No>
</Party>
<Party type="Billto">
<No>1234567899338</No>
<Name>asd</Name>
<Address />
<Address2>asd DU asd 13</Address2>
<City>København K</City>
<PostCode>1050</PostCode>
<CountryRegionCode>DK</CountryRegionCode>
</Party>
<Party type="Supplier">
<No>5790000718825</No>
<Name>asd ApS</Name>
<Address></Address>
<Address2>asd 66</Address2>
<City>as NV</City>
<PostCode>2400</PostCode>
<CountryRegionCode>DK</CountryRegionCode>
<VATRegNo></VATRegNo>
<Contact></Contact>
<ContactPhoneNo></ContactPhoneNo>
<ContactFaxNo></ContactFaxNo>
<ContactEmail></ContactEmail>
</Party>
</Parties>
<Lines>
<Line>
<LineNo>1</LineNo>
<EANNo>0761318024156</EANNo>
<ItemNo>0761318024156</ItemNo>
<Description>REVLON Glattejern</Description>
<Description2>REVLON Glattejern</Description2>
<Quantity>18.00</Quantity>
<UnitofMeasure>PCE</UnitofMeasure>
<UnitPrice>.00</UnitPrice>
<Amount>18.00</Amount>
<LineExtensionAmount>0.00</LineExtensionAmount>
</Line>
<Line>
<LineNo>2</LineNo>
<EANNo>0761318135272</EANNo>
<ItemNo>0761318135272</ItemNo>
<Description>REVLON Manicure og pedicure sæt</Description>
<Description2>REVLON Manicure og pedicure sæt</Description2>
<Quantity>6.00</Quantity>
<UnitofMeasure>PCE</UnitofMeasure>
<UnitPrice>.00</UnitPrice>
<Amount>6.00</Amount>
<LineExtensionAmount>0.00</LineExtensionAmount>
</Line>
<Line>
<LineNo>3</LineNo>
<EANNo>0761318364740</EANNo>
<ItemNo>0761318364740</ItemNo>
<Description>REVLON Varmluftskrøllejern</Description>
<Description2>REVLON Varmluftskrøllejern</Description2>
<Quantity>6.00</Quantity>
<UnitofMeasure>PCE</UnitofMeasure>
<UnitPrice>.00</UnitPrice>
<Amount>6.00</Amount>
<LineExtensionAmount>0.00</LineExtensionAmount>
</Line>
<Line>
<LineNo>4</LineNo>
<EANNo>5996415024715</EANNo>
<ItemNo>5996415024715</ItemNo>
<Description>MOSER Hårklipper Lithium Pro LED</Description>
<Description2>MOSER Hårklipper Lithium Pro LED</Description2>
<Quantity>5.00</Quantity>
<UnitofMeasure>PCE</UnitofMeasure>
<UnitPrice>.00</UnitPrice>
<Amount>5.00</Amount>
<LineExtensionAmount>0.00</LineExtensionAmount>
</Line>
<Line>
<LineNo>5</LineNo>
<EANNo>5996415024739</EANNo>
<ItemNo>5996415024739</ItemNo>
<Description>MOSER Hårklipper Lithium Pro LCD</Description>
<Description2>MOSER Hårklipper Lithium Pro LCD</Description2>
<Quantity>3.00</Quantity>
<UnitofMeasure>PCE</UnitofMeasure>
<UnitPrice>.00</UnitPrice>
<Amount>3.00</Amount>
<LineExtensionAmount>0.00</LineExtensionAmount>
</Line>
</Lines>
</Body>
</Document>
我试图让XSLT复制其他数据,但不知道我怎么能走得更远 这就是我的尝试。
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://rep.evenex.dk/schema/evenex/eBusiness_01"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://rep.evenex.dk/schema/evenex/eBusiness_01 http://rep.evenex.dk/schema/evenex/eBusiness_01/e-commerce_101.xsd"
version="1.0">
<xsl:output method="xml" version="1.0" indent="yes" encoding="iso-8859-1" />
<xsl:strip-space elements="*" />
<xsl:template match="Lines/Line/EANNO">
</xsl:template>
<!--Identity template, provides default behavior that copies all content into the output -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:1)
首先,
SearchActivity
与输入XML中的任何内容都不匹配,因为它具有默认命名空间。除此之外,它非常简单;你只需要将EAN格式化为13位数:
XSLT 1.0
<xsl:template match="Lines/Line/EANNO">