Subject: RE: [xsl] Finding a String and adding a line From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Thu, 12 May 2005 11:57:01 +0100 |
This isn't a valid match pattern: <xsl:template match='BUSINESS_UNIT type="CHAR"/' > Perhaps what was intended was <xsl:template match='BUSINESS_UNIT[@type="CHAR"]' > Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: rick.fraser@xxxxxx [mailto:rick.fraser@xxxxxx] > Sent: 12 May 2005 11:22 > To: 'xsl-list@xxxxxxxxxxxxxxxxxxxxxx' > Subject: [xsl] Finding a String and adding a line > > Hi > > I am completely new to this and have to solve a problem at > work - the XSLT is actually in a product called PeopleSoft, > but I am using Xray to try to solve my problem. > > I have a piece of code that someone has written (and no > longer around) - It in itself is not wrong but when the XML > gets to the destination it expects more and aborts. > > > The XML input is something like: > > <?xml version="1.0"?> > <BT_CONTRACT_PERSON_SYNC> > <FieldTypes> > <BT_PROV_SYNC class="R"> > <PERSON_ID type="CHAR"/> > <BUSINESS_UNIT type="CHAR"/> > <COUNTRY type="CHAR"/> > </BT_PROV_SYNC> > <SPB_PERSON_TBL class="R"> > <PERSON_ID type="CHAR"/> > </SPB_PERSON_TBL> > </FieldTypes> > <MsgData> > <Transaction> > <BT_PROV_SYNC class="R"> > <PERSON_ID>600026615</PERSON_ID> > <BUSINESS_UNIT>00001</BUSINESS_UNIT> > <COMPANY>503</COMPANY> > <COUNTRY>GBR</COUNTRY> > </BT_PROV_SYNC> > <SPB_PERSON_TBL class="R"> > <PERSON_ID>600026615</PERSON_ID> > </SPB_PERSON_TBL> > </Transaction> > </MsgData> > </BT_CONTRACT_PERSON_SYNC> > > > The line <COMPANY>... has been successfully added by the > XSLT, but the destination expects a corresponding entry in > the <FieldTypes> list, after <BUSINESS_UNIT type="CHAR"/>. > > The line <COMPANY type="CHAR"/> has to be added. > > Here is a cut-down version of the XSLT: > > > <?xml version="1.0"?> > <xsl:stylesheet > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> > <xsl:template match="BT_CONTRACT_PERSON_SYNC"> > <BT_CONTRACT_PERSON_SYNC> > <xsl:copy-of select="FieldTypes"/> > <MsgData> > <!-- Transaction --> > <xsl:apply-templates select="MsgData/Transaction"/> > <!-- /Transaction --> > </MsgData> > </BT_CONTRACT_PERSON_SYNC> > > </xsl:template> > <xsl:template match="MsgData/Transaction"> > <Transaction> > <xsl:apply-templates select="BT_PROV_SYNC"/> > <xsl:copy-of select="SPB_PERSON_TBL"/> > <xsl:copy-of select="PSCAMA"/> > </Transaction> > </xsl:template> > > <xsl:template match="BT_PROV_SYNC"> > <xsl:copy> > <xsl:attribute name="class"> <xsl:value-of > select="@class"/> </xsl:attribute> > <xsl:apply-templates select="node()"/> > </xsl:copy> > </xsl:template> > > > <!-inserted code - --> > <xsl:template match='BUSINESS_UNIT type="CHAR"/' > > <BUSINESS_UNIT Type="CHAR"/> > <COMPANY Type="CHAR"/> > </xsl:template> > <!-- inserted code end --> > > <!-- copy other fields --> > <xsl:template match="*"> > <xsl:copy-of select="."/> > </xsl:template> > </xsl:stylesheet> > > > When I run this through the application or Xray, it fails > with a message : > > Expected token 'EOF' found 'NAME'. > > BUSINESS_UNIT -->type<--="CHAR"/ > > > So PLEASE, how is it done? > > > >
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Finding a String and addi, David Carlisle | Thread | Re: [xsl] Finding a String and addi, omprakash . v |
Re: [xsl] Finding a String and addi, David Carlisle | Date | RE: [xsl] splitting terms with [A-Z, Michael Kay |
Month |