This stylish XSL stylesheet:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="node()|@*"> <xsl:copy> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:template> <xsl:template match="Field"> <xsl:element name="{@Name}"> <xsl:value-of select="@Value"/> </xsl:element> </xsl:template> </xsl:stylesheet>
Used for correct input:
<SiebelMessage MessageId="1-18J35" IntObjectName="XRX R5 Letter Instance" MessageType="Integration Object" IntObjectFormat="Siebel Hierarchical"> <LetterInstance Id="1-1RUYIF" Language="ENU" TemplateType="SA"> <Field Value="CO Last Name" Datatype="String" Name="ContractingOfficerLastName"/> </LetterInstance> </SiebelMessage>
It produces:
<SiebelMessage MessageId="1-18J35" IntObjectName="XRX R5 Letter Instance" MessageType="Integration Object" IntObjectFormat="Siebel Hierarchical"> <LetterInstance Id="1-1RUYIF" Language="ENU" TemplateType="SA"> <ContractingOfficerLastName>CO Last Name</ContractingOfficerLastName> </LetterInstance> </SiebelMessage>
I'm not sure where the <PONumber> should be generated <PONumber> .
source share