2017-01-22 3 views
0

i Leerräume zwischen xml tags.my Eingang xml erstellen müssen sieht aus wie unterRaum zwischen XML-Tags

<?xml version="1.0" encoding="UTF-8"?> 
<EPCISDocument schemaVersion="" creationDate=""> 
<EPCISHeader> 
    <StandardBusinessDocumentHeader> 
    <HeaderVersion/> 
    <Sender> 
     <Identifier Authority=""/> 
     <ContactInformation> 
      <Contact/> 
      <EmailAddress/> 
      <FaxNumber/> 
      <TelephoneNumber/> 
      <ContactTypeIdentifier/> 
     </ContactInformation> 
    </Sender> 
    <Receiver> 
     <Identifier Authority=""/> 
     <ContactInformation> 
      <Contact/> 
      <EmailAddress/> 
      <FaxNumber/> 
      <TelephoneNumber/> 
      <ContactTypeIdentifier/> 
     </ContactInformation> 
    </Receiver> 
    <DocumentIdentification> 
     <Standard/> 
     <TypeVersion/> 
     <InstanceIdentifier/> 
     <Type/> 
     <MultipleType/> 
     <CreationDateAndTime/> 
    </DocumentIdentification> 
    <Manifest> 
     <NumberOfItems/> 
     <ManifestItem> 
      <MimeTypeQualifierCode/> 
      <UniformResourceIdentifier/> 
      <Description/> 
      <LanguageCode/> 
     </ManifestItem> 
    </Manifest> 
    <BusinessScope> 
     <Scope> 
      <BusinessService> 
       <BusinessServiceName/> 
       <ServiceTransaction TypeOfServiceTransaction="" IsNonRepudiationRequired="" IsAuthenticationRequired="" IsNonRepudiationOfReceiptRequired="" IsIntegrityCheckRequired="" IsApplicationErrorResponseRequired="" TimeToAcknowledgeReceipt="" TimeToAcknowledgeAcceptance="" TimeToPerform="" Recurrence=""/> 
      </BusinessService> 
      <CorrelationInformation> 
       <RequestingDocumentCreationDateTime/> 
       <RequestingDocumentInstanceIdentifier/> 
       <ExpectedResponseDateTime/> 
      </CorrelationInformation> 
     </Scope> 
    </BusinessScope> 
    </StandardBusinessDocumentHeader> 
    </EPCISHeader> 
    <EPCISBody> 
    <EventList> 
    <ObjectEvent> 
     <eventTime/> 
     <recordTime/> 
     <eventTimeZoneOffset/> 
     <epcList> 
      <epc type=""/> 
     </epcList> 
     <action/> 
     <bizStep/> 
     <disposition/> 
     <readPoint> 
      <id/> 
     </readPoint> 
     <bizLocation> 
      <id/> 
     </bizLocation> 
     <bizTransactionList> 
      <bizTransaction type=""/> 
     </bizTransactionList> 
     <GskEpcExtension> 
      <nhrn> </nhrn> 
     </GskEpcExtension> 
    </ObjectEvent> 
    </EventList> 

Xslt Code i die wenigen Präfixe sind hinzugefügt und unter dem XSLT-Code ist

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:epcis="http://apse.com" 
    xmlns:sbdh="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" 
    xmlns:gsk="http://epcis.gsk.com"> 
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 
    <xsl:strip-space elements="*"/> 

    <!-- identity transform --> 
    <xsl:template match="@*|node()"> 
    <xsl:copy> 
    <xsl:apply-templates select="@*|node()"/> 
    </xsl:copy> 
    </xsl:template> 

    <xsl:template match="EPCISDocument"> 
    <epcis:EPCISDocument> 
    <xsl:apply-templates select="node()|@*"/> 
    </epcis:EPCISDocument> 
    </xsl:template> 

    <xsl:template match="GskEpcExtension|GskEpcExtension//*"> 
    <xsl:element name="gsk:{name()}"> 
    <xsl:apply-templates select="node()|@*"/> 
    </xsl:element> 
    </xsl:template> 

<xsl:template match="StandardBusinessDocumentHeader|StandardBusinessDocumentHeader//*"> 
    <xsl:element name="sbdh:{name()}"> 
     <xsl:apply-templates select="node()|@*"/> 
    </xsl:element> 
    </xsl:template> 



</xsl:stylesheet> 

der Ausgang meinen Code kommt als expected.but ich habe neue Anforderung wie in der xML-Eingabe unter gskepcextension Knoten eines des Feldes nhrn mit sapces kommen. aber in der Ausgabe xml endet es wie gsk:/nhrn. Ich brauche wie gsk: nhrn gsk:/nhrn. Wenn der Wert in der Eingabe für dieses Feld eingeht, wird er wie erwartet gefüllt. Aber wenn er mit dem Leerzeichen kommt, füllt er sich nicht wie erwartet. zum Beispiel sollte die Ausgabe wie unten sein

<gsk:nhrn> </gsk:nhrn> 

Antwort

0

die <xsl:strip-space elements="*"/> entfernen und dann wollen Sie wahrscheinlich indent="no" auf dem xsl:output.

+0

Vielen Dank Martin, ich denke jetzt funktioniert es gut ... –