|
Subject: Re: [xsl] How would I go about changing my single quotes to double quotes in my XML output line ? From: "Abel Braaksma (Exselt) abel@xxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue, 25 Nov 2014 22:14:10 -0000 |
Graydon already answered you, but you might consider some other options as
well:
1) change all double to single and all single to double-quotes
2) use a variable for the quote value (XSLT 1.0 and 2.0)
3) use a partial function application for the quoting fn:concat (XSLT 3.0)
Ex. of 1:
<xsl:value-of select='concat("""",../external_id[1],""""), ....' />
Ex. of 2:
<xsl:variable name="quot" select=' """" ' />
<xsl:value-of select='concat($quot ,../external_id[1], $quot), ....' />
Ex. of 3:
<xsl:variable name="quotate" select='concat("""", ?, """")' />
<xsl:value-of select='$quotate(,../external_id[1]), ....' />
If you can use XSLT 3.0, the third option is probably easiest and removes some
of the clutter caused by all the fn:concat invocations. But you can reach the
same in XSLT 2.0 with xsl:function, it is just a bit more work.
In addition, instead of creating such big xsl:value-of statements, consider
splitting it up in smaller ones, using apply-templates on the nodes, or place
them in a sequence of items. Or, in XSLT 3.0, using Content Value Templates.
Anything that makes such large xsl:value-of statements easier to read is
probably a good thing for maintainability of the code.
Cheers,
Abel
From: Catherine Wilbur cwilbur@xxxxxxxxxxx
[mailto:xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx]
Sent: Thursday, November 20, 2014 11:06 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] How would I go about changing my single quotes to double quotes
in my XML output line ?
Have following code in XSL stylesheet
Have string fields I surround by single quotes. How would I change the single
quote to a double quote without getting a syntax error in the <xsl:value-of
select=. Reason I am asking is because some of my string fields might have a
single quote embedded so I want to surround my string fields by double quotes.
With the logic below it causes a syntax error with the <xsl:value-of select="
field sytax.
Anyone have any ideas?
<!--
===============================================
=============================================================================
====
Output the CSV comma delimited file with
fields in the following order:
Seq#, UserId, Batch#, Vendor#, GLAcct,
Invoice#, InvoiceDate, GLDate, Currency, ExchgRate, TotInvoiceAmnt,
InvoiceLineAmnt, Attachment, PaymentTerms, Remark
Remark is a combination of the unique
identifier (16 chars) plus the first 14 characters of the vendor code
"
" is a line feed (this is one we need to
use to generate new line)
"
" is a carriage return
Note: Amount fields and exchange rate fields
must be written out as implied decimal fields
=============================================
=============================================================================
======
-->
<xsl:value-of select="position(),
'LIBPROD',
local:sort-key($InvoiceCurrency,$InvoicePOLin
eOwner),
$Derived_FISVendorNo,
concat('''',../external_id[1],''''),
concat('''',$inv/invoice_number[1],''''),
concat(substring($InvoiceDateValue,5,4),subst
ring($InvoiceDateValue,1,2),substring($InvoiceDateValue,3,2)),
$Derived_GLDateValue,
$inv/invoice_amount[1]/currency[1],
$Derived_ExchgRate,
$Derived_InvoiceAmnt,
$Derived_InvoiceLineFundAmnt,
$Derived_PaymentAttachment,
$Derived_PaymentTerms
,
concat('''',$inv/unique_identifier[1],substri
ng($inv/vendor_code[1],1,14),'''')" separator=","/>
<xsl:text>
</xsl:text>
_____________________________________________________________________
Catherine Wilbur
(E) cwilbur@xxxxxxxxxxx
www.uwindsor.ca/its
XSL-List info and archive
EasyUnsubscribe (by email)
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] How would I go about chan, Graydon graydon@xxxx | Thread | [xsl] XSLT3.0: Question about shado, Dimitre Novatchev dn |
| [xsl] [ANN] New release of XSLTHL, Jirka Kosek jirka@xx | Date | [xsl] Large text files, Ihe Onwuka ihe.onwuk |
| Month |