[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: How to overrite default rendering toretain name=

Subject: Re: How to overrite default rendering toretain name=value attribute pairs
From: "Karlmarx Rajangam" <karlmarx.rajangam@xxxxxxxxxxxxxxxxxx>
Date: Tue, 19 Jun 2007 08:56:27 -0400
Re:  How to overrite default rendering toretain   name=
Thanks Mr.David. I tried what your suggested but could not really make
it to work.

1) On
>It should be selected=selected (which may be serialised
>as just selected in html)

Actually my first try was with selected=selected, after failing with it,
tried selected=true. I both cases, the resultant output got serialized
to output  <option selected>


> that is a bug in your XSLT engine.
If so, any alternative way possible? We work in php environment. Sorry,
so far I am unable to get more info of the xsl engine.

>If you are using the XML output type <xsl:output method="xml"/>
>which is what you want to use, given your requirement to
>generate well formed xml) then this attribute minimisation
> should never happen

So far we used <xsl:output method="html"/>, but just tried with
output=xml option but still it gets serialized to output without =true.
By the way, we may have to use output=html for other reasons.


> if you are using the html output.... but
> <option selected = "true"> should be
> serialised as <option selected = "true">

This seems not happening.

>  (selected=true) a selected="true" is not valid
>html or xhtml (although xslt will generate it if you want).

As you said, we would like xslt to generate this way <option
selected="true">. Pls can you suggest how we can force it to get this?

Sample XML code:
<ANSWER QTYPE="MATCH">
	<CHOICE ID="1">
		<CONTENT TYPE="text/html"><![CDATA[glove]]></CONTENT>
		<OPTION SELECTED="true"><![CDATA[head]]></OPTION>
		<OPTION><![CDATA[hand]]></OPTION>
		<OPTION><![CDATA[foot]]></OPTION>
	</CHOICE>
	<CHOICE ID="2">
		<CONTENT TYPE="text/html"><![CDATA[sock]]></CONTENT>
		<OPTION><![CDATA[head]]></OPTION>
		<OPTION><![CDATA[hand]]></OPTION>
		<OPTION><![CDATA[foot]]></OPTION>
	</CHOICE>
	<CHOICE ID="3">
		<CONTENT TYPE="text/html"><![CDATA[hat]]></CONTENT>
		<OPTION><![CDATA[head]]></OPTION>
		<OPTION SELECTED="true"><![CDATA[hand]]></OPTION>
		<OPTION><![CDATA[foot]]></OPTION>
	</CHOICE>
</ANSWER>

Desired output: (for each choice group)

<script type="text/javascript">
	inputXML += '<CHOICE id="answer_xx">\n';
	inputXML += '<option SELECTED="TRUE">head</option>\n';
	inputXML += '<option>hand</option>\n';
	inputXML += '<option>foot</option>\n';
	inputXML += '</CHOICE>\n';
</script>

Pls ignore any type error / case sensitive mistakes. Thanks in adv.
karl

------------------------------

Date: Fri, 15 Jun 2007 13:43:06 +0100
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
From: David Carlisle <davidc@xxxxxxxxx>
Subject: Re:  How to overrite default rendering toretain
name=value attribute pairs
Message-Id: <200706151243.l5FCh66H011089@xxxxxxxxxxxxxxxxxxx>

>  (selected=true) a

selected="true" is not valid html or xhtml (although xslt will generate
it if you want).

It should be selected=selected (shich may be serialised as just selected
in html)

> Results in <option selected>xxx</option>, without ="TRUE" thereby
> becoming an INVALID XML

that is a bug in your XSLT engine. If you are using the XML output type
<xsl:output method="xml"/>
which is what you want to use, given your requirement to generate well
formed xml) then this attribute minimisation should never happen.
if you are using the html output
<xsl:output method="html"/>
then
<option selected="selected">
may be (and probably would be) serialised as
<option selected>
but
<option selected = "true">
should be serialised as
<option selected = "true">

David




Date: Fri, 15 Jun 2007 08:35:19 -0400
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
From: "Karlmarx Rajangam" <karlmarx.rajangam@xxxxxxxxxxxxxxxxxx>
Subject: How to overrite default rendering toretain  name=value
attribute pairs
Message-ID:
<6B219F1619B1EB449A246CFA95A8CA29AC0432@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>

I have a problem. Basically I want to get an output with =
selected=3D"true"
for <option/>, instead of WITHOUT "true". Even though <option selected/>
is a valid html, I need to get name=3Dvalue pair (selected=3Dtrue) as we
=
try
to form & pass an XML input for some other validation.=20

We must create something like,
<choice>
	<option selected =3D "true">cc</option>
	<!-- NOT THIS WAY <option selected>cc</option> -->
	<option>bbb</option>
</choice>

Tried 2 ways:(A)
<xsl:for-each select=3D"OPTION">
inputXML +=3D '<option>
	<xsl:if test=3D"@SELECTED=3D'true'"><xsl:attribute
name=3D"Selected">true</xsl:attribute></xsl:if><xsl:value-of =
select=3D"."/>
</option>\n';
</xsl:for-each>

Results in <option selected>xxx</option>, without =3D"TRUE" thereby
becoming an INVALID XML

So, I tried (B),=20
<xsl:for-each select=3D"OPTION">
<xsl:choose>
	<xsl:when test=3D"@SELECTED=3D'true'">inputXML +=3D '&lt;option
selected=3D"true"&gt;<xsl:value-of
select=3D"."/>&lt;/option&gt;\n';</xsl:when>
	<xsl:otherwise>inputXML +=3D '<option><xsl:value-of
select=3D"."/></option>\n';</xsl:otherwise>
</xsl:choose>
</xsl:for-each>=09

thinking &lt; will be rendered a <, but resulted only as=20
&lt;option selected=3D"true"&gt;xxx&lt;/option&gt;

Any suggestion how I can fix this? =20

Thanks in advance,
karl

=20

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.