xsl-list
[Top] [All Lists]

Re: [xsl] Output < and > in the attribute from the style sheet

2012-04-21 18:00:40
Martin,
thank you. I understand that the '>' doesn't have to be escaped in
this case, and the final results is valid XML. However,
I am wondering about a clean way to prevent the serializer from
escaping it in the attributes.
Currently, the combination of <xsl:text> and CDATA, is working fine,
but it's ugly as I loose syntax highlight, and indentation.
That is why I am looking for a better a way.

Thank you.

On Sat, Apr 21, 2012 at 7:15 AM, Martin Honnen 
<Martin(_dot_)Honnen(_at_)gmx(_dot_)de> wrote:
Mansour Al Akeel wrote:

In on of the sheets I am working on there is the sign ">" in on of the
attributes. I am trying to get this in the resulting XML.
So I have this in my template:

       <dependencies>
               <xsl:text disable-output-escaping="yes">
               <![CDATA[
                       <dependency org="org.slf4j" name="slf4j-api"
rev="1.6.4"
conf="provided->*" />
                       <dependency org="org.slf4j" name="slf4j-log4j12"
rev="1.6.4"
conf="compile->*" />
                       <dependency org="log4j" name="log4j" rev="1.2.16"
conf="compile->*,!sources,!javadoc">
                       <exclude module="jmxri" />
                       <exclude module="jmxtools" />
                       </dependency>
                       <dependency org="junit" name="junit" rev="4.8"
conf="test->*" />
                       <dependency org="javax.servlet"
name="javax.servlet-api"
rev="3.0.1" conf="provided->*">
                       <artifact name="javax.servlet-api" type="jar" />
                       </dependency>
                       ]]>
               </xsl:text>

I am using text and CDATA, as you can see in my style sheet.
Is there a better way to output this without escaping the XML and
generate the indented XML ?



Well the '>' sign does not need to be escaped but often is. So I don't see
any problem with doing


                            <dependency org="org.slf4j" name="slf4j-api"
rev="1.6.4"
conf="provided->*" />
                            <dependency org="org.slf4j" name="slf4j-log4j12"
rev="1.6.4"
conf="compile->*" />
                            <dependency org="log4j" name="log4j"
rev="1.2.16"
conf="compile->*,!sources,!javadoc" >
                            <exclude module="jmxri" />
                            <exclude module="jmxtools" />
                            </dependency>
                            <dependency org="junit" name="junit" rev="4.8"
conf="test->*" />
                            <dependency org="javax.servlet"
name="javax.servlet-api"
rev="3.0.1" conf="provided->*">
                            <artifact name="javax.servlet-api" type="jar" />
                            </dependency>

literally in your stylesheet code, the serializer might later escape the '>'
signs '&gt;'.

If you want to use less than signs '<' then you need to escape them e.g
 <foo att="a &lt; b"/>
that is an XML syntax requirement and not specific to XSLT.


--

       Martin Honnen --- MVP Data Platform Development
       http://msmvps.com/blogs/martin_honnen/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--