Color in xslt?

I was wondering if there is a way to put color into an xslt file? I mean, the output of the file not the file contents. I have this script for conky that gathers weather information from weather.com and I would like to ass color to the output of the script. I can't use conky to colorize it because then the whole output would be colored and I just want to colorize some aspects of the output. Thanks for any help.

In that case you need to pick an alternative output format because text is just text.
If you were printing directly to a console, then it's possible to add escape sequences which can add colour. These strings won't appear in the output, but it's ultimately a kind of markup.
You need to decided what formats are available for you.

Similar Messages

  • SAP 4.7 XML data exchange using XSLT

    Hello All,
    Hopefully the right place to post such article but here goes any way.
    My project involves producing XML files and then reading them back into to SAP internal tables. I am ok with writing SAP data to external XML file but reading it back in is causing a lot of head scratching.
    I am able to double click the XML file and it launches Ok in Internet Explorer.
    I am also able to debug the xslt file from within SE80 and the correct output is displayed.
    However, where I am trying to read the contents of the xml file via the Call Transformation procedure call my output table is not getting populated but instead I am recieving an error message saying the following is not correct:
    xmlns:sapxsl="http://www.sap.com/sapxsl
    but the above line is placed automaticlly in the XSLT when you create a new one from within SE80.
    I am new to SAP ABAP development so not sure what's exactly wrong.
    Any help on this issue will be greatfully appreciated. Thanks in Advance,
    Wasif
    REPORT  z_hp_xml_test                                               .
    TYPE-POOLS: ixml.
    TABLES: tstc, tstct.
    TYPES: BEGIN OF ty_transactions,
          tcode LIKE tstc-tcode,
          ttext LIKE tstct-ttext,
          sprsl LIKE tstct-sprsl,
    END OF ty_transactions.
    DATA: itab_transactions TYPE STANDARD TABLE OF ty_transactions.
    TYPES: BEGIN OF t_xml_line,
            data(256) TYPE x,
          END OF t_xml_line.
    DATA: l_ixml            TYPE REF TO if_ixml,
          l_streamfactory   TYPE REF TO if_ixml_stream_factory,
          l_parser          TYPE REF TO if_ixml_parser,
          l_istream         TYPE REF TO if_ixml_istream,
          l_document        TYPE REF TO if_ixml_document,
          l_node            TYPE REF TO if_ixml_node,
          l_xmldata         TYPE string.
    DATA: l_elem            TYPE REF TO if_ixml_element,
          l_root_node       TYPE REF TO if_ixml_node,
          l_next_node       TYPE REF TO if_ixml_node,
          l_name            TYPE string,
          l_iterator        TYPE REF TO if_ixml_node_iterator.
    DATA: l_xml_table       TYPE TABLE OF t_xml_line,
          l_xml_line        TYPE t_xml_line,
          l_xml_table_size  TYPE i.
    DATA: l_filename        TYPE string.
    PARAMETERS: pa_file TYPE char1024 DEFAULT 'C:     emp     ransactions.xml'.
    Validation of XML file: Only DTD included in xml document is supported
    PARAMETERS: pa_val  TYPE char1 AS CHECKBOX.
    START-OF-SELECTION.
      Creating the main iXML factory
      l_ixml = cl_ixml=>create( ).
      Creating a stream factory
      l_streamfactory = l_ixml->create_stream_factory( ).
      PERFORM get_xml_table CHANGING l_xml_table_size l_xml_table.
      wrap the table containing the file into a stream
      l_istream = l_streamfactory->create_istream_itable( table =
    l_xml_table
                                                      size  =
    l_xml_table_size ).
      Creating a document
      l_document = l_ixml->create_document( ).
      Create a Parser
      l_parser = l_ixml->create_parser( stream_factory = l_streamfactory
                                        istream        = l_istream
                                        document       = l_document ).
      Validate a document
      IF pa_val EQ 'X'.
        l_parser->set_validating( mode = if_ixml_parser=>co_validate ).
      ENDIF.
    Parse the stream
    If any errors then disply else convert XML to table
      IF l_parser->parse( ) NE 0.
        IF l_parser->num_errors( ) NE 0.
          DATA: parseerror TYPE REF TO if_ixml_parse_error,
                str        TYPE string,
                i          TYPE i,
                count      TYPE i,
                index      TYPE i.
          count = l_parser->num_errors( ).
          WRITE: count, ' parse errors have occured:'.
          index = 0.
          WHILE index < count.
    parseerror = l_parser->get_error( index = index ).
    i = parseerror->get_line( ).
    WRITE: 'line: ', i.
    i = parseerror->get_column( ).
    WRITE: 'column: ', i.
    str = parseerror->get_reason( ).
    WRITE: str.
    index = index + 1.
    ENDWHILE.
    ENDIF.
    ELSE.
    TRY .
    CALL TRANSFORMATION (`Z_HP_TEST_XSLT`)
    SOURCE XML l_xml_table
    RESULT outtab = itab_transactions.
    DATA: xslt_err TYPE REF TO cx_xslt_exception .
    CATCH cx_xslt_exception INTO xslt_err.
    DATA: s TYPE string.
    s = xslt_err->get_text( ).
    WRITE: ': ', s.
    STOP.
    ENDTRY .
      Process the document
        IF l_parser->is_dom_generating( ) EQ 'X'.
          PERFORM process_dom USING l_document.
        ENDIF.
      ENDIF.
    *&      Form  get_xml_table
    FORM get_xml_table CHANGING l_xml_table_size TYPE i
                                l_xml_table      TYPE STANDARD TABLE.
      Local variable declaration
      DATA: l_len      TYPE i,
            l_len2     TYPE i,
            l_tab      TYPE tsfixml,
            l_content  TYPE string,
            l_str1     TYPE string,
            c_conv     TYPE REF TO cl_abap_conv_in_ce,
            l_itab     TYPE TABLE OF string.
      l_filename = pa_file.
      upload a file from the client's workstation
      CALL METHOD cl_gui_frontend_services=>gui_upload
        EXPORTING
          filename   = l_filename
          filetype   = 'BIN'
        IMPORTING
          filelength = l_xml_table_size
        CHANGING
          data_tab   = l_xml_table
        EXCEPTIONS
          OTHERS     = 19.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      Writing the XML document to the screen
      CLEAR l_str1.
      LOOP AT l_xml_table INTO l_xml_line.
        c_conv = cl_abap_conv_in_ce=>create( input = l_xml_line-data
    replacement = space  ).
        c_conv->read( IMPORTING data = l_content len = l_len ).
        CONCATENATE l_str1 l_content INTO l_str1.
      ENDLOOP.
      l_str1 = l_str1+0(l_xml_table_size).
      SPLIT l_str1 AT cl_abap_char_utilities=>cr_lf INTO TABLE l_itab.
      WRITE: /.
      WRITE: /' XML File'.
      WRITE: /.
      LOOP AT l_itab INTO l_str1.
        REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>horizontal_tab
    IN
          l_str1 WITH space.
        WRITE: / l_str1.
      ENDLOOP.
      WRITE: /.
    ENDFORM.                    "get_xml_table
    *&      Form  process_dom
    FORM process_dom USING document TYPE REF TO if_ixml_document.
      DATA: node      TYPE REF TO if_ixml_node,
            iterator  TYPE REF TO if_ixml_node_iterator,
            nodemap   TYPE REF TO if_ixml_named_node_map,
            attr      TYPE REF TO if_ixml_node,
            name      TYPE string,
            prefix    TYPE string,
            value     TYPE string,
            indent    TYPE i,
            count     TYPE i,
            index     TYPE i.
      node ?= document.
      CHECK NOT node IS INITIAL.
      ULINE.
      WRITE: /.
      WRITE: /' DOM-TREE'.
      WRITE: /.
      IF node IS INITIAL. EXIT. ENDIF.
      create a node iterator
      iterator  = node->create_iterator( ).
      get current node
      node = iterator->get_next( ).
      loop over all nodes
      WHILE NOT node IS INITIAL.
        indent = node->get_height( ) * 2.
        indent = indent + 20.
        CASE node->get_type( ).
          WHEN if_ixml_node=>co_node_element.
            element node
            name    = node->get_name( ).
            nodemap = node->get_attributes( ).
            WRITE: / 'ELEMENT  :'.
            WRITE: AT indent name COLOR COL_POSITIVE INVERSE.
            IF NOT nodemap IS INITIAL.
              attributes
              count = nodemap->get_length( ).
              DO count TIMES.
                index  = sy-index - 1.
                attr   = nodemap->get_item( index ).
                name   = attr->get_name( ).
                prefix = attr->get_namespace_prefix( ).
                value  = attr->get_value( ).
                WRITE: / 'ATTRIBUTE:'.
                WRITE: AT indent name  COLOR COL_HEADING INVERSE, '=',
                                 value COLOR COL_TOTAL   INVERSE.
              ENDDO.
            ENDIF.
          WHEN if_ixml_node=>co_node_text OR
               if_ixml_node=>co_node_cdata_section.
            text node
            value  = node->get_value( ).
            WRITE: / 'VALUE     :'.
            WRITE: AT indent value COLOR COL_GROUP INVERSE.
        ENDCASE.
        advance to next node
        node = iterator->get_next( ).
      ENDWHILE.
    ENDFORM.                    "process_dom
    Section 3: My XSLT file:
    <xsl:transform version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:sapxsl="http://www.sap.com/sapxsl"
    <xsl:strip-space elements="*"/>
    <xsl:template match="TransList">
         <xsl:apply-templates />
    </xsl:template>
             <xsl:template match="Tcode">
                  Tcode <xsl:apply-templates />
             </xsl:template>
             <xsl:template match="ttext">
                  ttext <xsl:apply-templates />
             </xsl:template>
             <xsl:template match="sprsl">
                  sprsl <xsl:apply-templates />
             </xsl:template>
    </xsl:transform>

    The exact error message I'm getting is :
    ABAP XML formatting error in XML node of type "element", name: "abap"

  • Xslt graph in a rtf template. Can an external variable be used inside the graph definition?

    I'm working with BI Publisher 10g, building an rtf template that would display a table and a graph by iterating on one of the xml tags from the input file.
    I got the table working using am xslt variable set when the xml tag associated value changes (DATAGROUPID).
    <?for-each:(/DATA/SITE/SITE_DATA)?> <?sort:DATAGROUPID;'ascending';data-type='number'?>
    <?xdoxslt:set_variable($_XDOCTX,'SITE',DATAGROUPID)?>
    <?for-each:(/DATA//DIMS/LOCALES[LOCALE = 'en']/TEXT)?><?sort:DIMNAME;'ascending';data-type='text'?>
    <?xdoxslt:set_variable($_XDOCTX,'DIMID',DIMID)?>
    <?round(/DATA/SITE/SITE_DATA[DATAGROUPID = xdoxslt:get_variable($_XDOCTX,'SITE')]/YEAR[SURVEYYEAR = 2012]/DIM[DIMID = xdoxslt:get_variable($_XDOCTX,'DIMID')]/ITEM[ITEMID = 0]/PFAV)?>
    <?end for-each?>
    chart:
    <Graph seriesEffect="SE_AUTO_GRADIENT" graphType="BAR_VERT_PERCENT" autoLayout="AL_AS_NEEDED">
    <LegendArea visible="true" automaticPlacement="AP_NEVER" position="LAP_BOTTOM"/>
    <SeriesItems>
    <Series id="0" color="#FF0000"/>
    <Series id="1" color="#FFFF00"/>
    <Series id="2" color="#00FF00"/>
    </SeriesItems>
    <MarkerText visible="true" markerTextPlace="MTP_CENTER">
    <GraphFont name="Arial" size="20" bold="true" italic="false" underline="false"/>
    <Y1ViewFormat>
    <ViewFormat decimalDigit="0" decimalSeparatorUsed="true" decimalDigitUsed="true"/>
    </Y1ViewFormat>
    </MarkerText>
    <LegendText>
    <GraphFont name="Arial" size="20" bold="false" italic="false" underline="false"/>
    </LegendText>
    <Y1TickLabel>
    <GraphFont name="Arial" size="12" bold="false" italic="false" underline="false"/>
    </Y1TickLabel>
    <O1TickLabel wordWrapEnabled="false" tickLabelStaggered="false">
    <GraphFont name="Arial" size="20" bold="true" italic="false" underline="false"/>
    </O1TickLabel>
    <LocalGridData colCount="{count(xdoxslt:group(/DATA/SITE/SITE_DATA/YEAR[SURVEYYEAR = 2012]/DIM, 'DIMID'))}" rowCount="3">
    <RowLabels>
    <Label>Unfavorable        </Label>
    <Label>Neutral</Label>
    <Label>Favorable</Label>
    </RowLabels>
    <ColLabels>
    <xsl:for-each select="/DATA/DIMS/LOCALES[LOCALE = 'en']/TEXT">
    <xsl:sort select="DIMNAME"/>
    <Label>
    <xsl:value-of select="DIMNAME"/>
    </Label>
    </xsl:for-each>
    </ColLabels>
    <DataValues>
    <RowData>
    <xsl:for-each select="/DATA/DIMS/LOCALES[LOCALE = 'en']/TEXT">
    <xsl:sort select="DIMNAME"/>
    <Cell>
    <xsl:variable name="DIMID" select="DIMID"/>
    <xsl:value-of select="/DATA/SITE/SITE_DATA/YEAR[SURVEYYEAR = 2012]/DIM[DIMID = $DIMID]/ITEM[ITEMID = 0 and PUNFAV != 0]/PUNFAV"/>
    </Cell>
    </xsl:for-each>
    </RowData>
    <RowData>
    <xsl:for-each select="/DATA/DIMS/LOCALES[LOCALE = 'en']/TEXT">
    <xsl:sort select="DIMNAME"/>
    <Cell>
    <xsl:variable name="DIMID" select="DIMID"/>
    <xsl:value-of select="/DATA/SITE/SITE_DATA/YEAR[SURVEYYEAR = 2012]/DIM[DIMID = $DIMID]/ITEM[ITEMID = 0 and PNEU != 0]/PNEU"/>
    </Cell>
    </xsl:for-each>
    </RowData>
    <RowData>
    <xsl:for-each select="/DATA/DIMS/LOCALES[LOCALE = 'en']/TEXT">
    <xsl:sort select="DIMNAME"/>
    <Cell>
    <xsl:variable name="DIMID" select="DIMID"/>
    <xsl:value-of select="/DATA/SITE/SITE_DATA/YEAR[SURVEYYEAR = 2012]/DIM[DIMID = $DIMID]/ITEM[ITEMID = 0 and PFAV !=0]/PFAV"/>
    </Cell>
    </xsl:for-each>
    </RowData>
    </DataValues>
    </LocalGridData>
    </Graph>
    <?end for-each?>
    So, on the table this line gets the correct variable from the input file:
    <?round(/DATA/SITE/SITE_DATA[DATAGROUPID = xdoxslt:get_variable($_XDOCTX,'SITE')]/YEAR[SURVEYYEAR = 2012]/DIM[DIMID = xdoxslt:get_variable($_XDOCTX,'DIMID')]/ITEM[ITEMID = 0]/PFAV)?>
    How can I replicate that logic inside the table definition?
    <xsl:value-of select="/DATA/SITE/SITE_DATA/YEAR[SURVEYYEAR = 2012]/DIM[DIMID = $DIMID]/ITEM[ITEMID = 0 and PFAV !=0]/PFAV"/>
    Input data looks like this:
    <DATA>
    - <SITE>
    - <SITE_DATA> 
    <DATAGROUPID>1032817</DATAGROUPID>  
    <DATAGROUPNAME>My Sales</DATAGROUPNAME>  
    - <YEAR> 
    <SURVEYYEAR>2012</SURVEYYEAR>  
    - <DIM> 
    <DIMID>1</DIMID>  
    - <ITEM> 
    <ITEMID>0</ITEMID>  
    <PFAV>88</PFAV>  
    <PNEU>13</PNEU>  
    <PUNFAV>0</PUNFAV>
    - <ITEM> 
    <ITEMID>40</ITEMID>  
    <PFAV>100</PFAV>  
    <PNEU>0</PNEU>  
    <PUNFAV>0</PUNFAV>  
    </ITEM>
    </DIM>
    </YEAR>
    </SITE_DATA>
    - <SITE_DATA> 
    <DATAGROUPID>1032816</DATAGROUPID>  
    <DATAGROUPNAME>Your Sales</DATAGROUPNAME>  
    - <YEAR> 
    <SURVEYYEAR>2012</SURVEYYEAR>  
    - <DIM> 
    <DIMID>1</DIMID>  
    - <ITEM> 
    <ITEMID>0</ITEMID>  
    <PFAV>71</PFAV>  
    <PNEU>25</PNEU>  
    <PUNFAV>4</PUNFAV>  
    I can include a complete sample on request, I thought this would be enough to illustrate the issue.
    I'll appreciate any help you can provide.

    I kept researching, I found some possible solution in this blog:
    https://blogs.oracle.com/xmlpublisher/category/Oracle/Templates/RTF
    so, I created a local SITE variable inside every cell to get the external SITE info:
    <Cell>
    <xsl:variable name="DIMID" select="DIMID"/>
    <xsl:variable name="SITE" select="{xdoxslt:get_variable($_XDOCTX,'SITE')}"/>
    <xsl:value-of select="/DATA/SITE/SITE_DATA[DATAGROUPID = $SITE]/YEAR[SURVEYYEAR = 2012]/DIM[DIMID = $DIMID]/ITEM[ITEMID = 0 and PUNFAV != 0]/PFAV"/>
    </Cell>
    but I get this error at run time:
    oracle.xdo.parser.v2.XPathException: Error in expression: '{xdoxslt:get_variable($_XDOCTX,'SITE')}'.
        at oracle.xdo.parser.v2.XSLProcessor.reportException(XSLProcessor.java:806)
        at oracle.xdo.parser.v2.XSLProcessor.newXSLStylesheet(XSLProcessor.java:571)
        ... 14 more
    What am I doing wrong?

  • Error while transforming XSLT,"Could not compile stylesheet"

    Hi,
    During transformation of my XSLT I needs to fetch data from method named *"myMethod(String str)"*, which is in *"mypackage.test.MyClass"* class. MyClass is in{color:#000000} XXX.jar. {color}
    This XXX.jar is not in context of my web application.*
    Following is part of XSLT which I am using.
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:aaa="mypackage.test.MyClass">
    <xsl:template match="/responseData">
    <xsl:for-each select="response">
    <XMLResponse>
    <xsl:for-each select="status">
    <xsl:variable name="Vvar_ResResponseType" select="."/>
    <xsl:attribute name="ResResponseType">
    <xsl:value-of select="aaa:myMethod($Vvar_ResResponseType)"/>
    </xsl:attribute>
    </xsl:for-each>
    </XMLResponse>
    </xsl:for-each>
    </xsl:template>
    </xsl:stylesheet>So I tried to use reflection API to load XXX.jar file at runtime.
    But while transforming Transformer does not find "myMethod(String str)" and gives error like "Could not compile stylesheet"
    Following is full exception stacktrace
    ERROR:  'The first argument to the non-static Java function 'myMethod' is not a valid object reference.'
    FATAL ERROR:  'Could not compile stylesheet'
    javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:829)
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:623)
    at com.actl.dxchange.utilities.Transformation.transform(Transformation.java:83)
    at com.actl.dxchange.base.BaseConnector.transform(BaseConnector.java:330)
    at com.actl.dxchange.connectors.KuoniConnector.doRequestProcess(KuoniConnector.java:388)
    at com.actl.dxchange.connectors.KuoniConnector.hotelAvail(KuoniConnector.java:241)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    ...........Please suggest is there any other way, so that Transformer can find required bean class from XXX.jar duruing transformation process.
    Thanks & Regards,
    Rohit Lad
    Edited by: Rohit_Lad on Jan 29, 2009 7:38 PM
    Edited by: Rohit_Lad on Jan 30, 2009 9:57 AM
    Edited by: Rohit_Lad on Jan 30, 2009 10:02 AM

    Got the solution from forum named
    "Reflections & Reference Objects"
    Following is link for whom encountered this issue.
    http://forums.sun.com/thread.jspa?threadID=5362426
    Edited by: Rohit_Lad on Jan 30, 2009 2:35 PM

  • XSLT Mapping Error while receiving Base64Binary content

    Dear Experts,
    I am new to SAP PI and working on PI 7.11. In our project we had a requirement to receive PDF file content in Base64 format from third party system by consuming the service provided by third party system with synchronous communication. The adapter we need to use is SOAP
    The reason to use XSLT mapping is as our third party system used some tokens in both the request and response header, I used XSLT mapping to add the required details in request header after receiving the request from ECC system and skip the details in response to send the response to ECC system.
    I have build two XSL files with XSLT mapping programs one for request and another for response using Oxygen XML editor tool. Both are checked, validated without any errors and also tested in ESB – Operation mapping which is successfully executed without errors.
    The third party is sending the PDF content in Base64Binaryformat. I have also tested the WSDL from Oxygen to check the whether the service is working fine, which also successfully receiving the response from third party system. 
    The thing I do not understand and not able to figure out the problem is, when executing the service from ECC by sending a sample request, there is no response coming back and receiving an error saying
    “TransformerException occurred during XSLT mapping Response_03 (URN:COM.XYZ_GET_ABSENCE_DETAILS, aa3a6491-e318-11e2-c1d7-c14948250cb4, -1)”
    I have checked the Communication Channel which working fine. And also the message status in message monitoring wherein Request message has “Cancelled with errors” status and Response has “To Be Delivered” Status.
    Could you please any of you help to figure out the issue and resolve the same.
    Thank you in advance.....
    Regards,
    Govardhan Duvva.

    The response am receiving is like below
    <!-- XML Validation Inbound Channel Response -->
    <html><head><title>Apache Tomcat/6.0.18 - Error report</title><style>
    <!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;}
    H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;}
    H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;}
    BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;}
    B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;}
    P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}
    A {color : black;}A.name {color : black;}HR {color : #525D76;}-->
    </style> </head><body>
    <h1>HTTP Status 415 - </h1>
    <HR size="1" noshade="noshade"><p>
    <b>type</b> Status report</p><p><b>message</b>
    <u></u></p><p><b>description</b>
    <u>The server refused this request because the request entity is in a format not supported
    by the requested resource for the requested method ().</u>
    </p><HR size="1" noshade="noshade"><h3>Apache Tomcat/6.0.18</h3></body></html>
    And also in SXMB_MONI, there are two call adaptor nodes as in below picture, which means our request is going to the third party system ?

  • Looking for example - abap xslt - that uses xslt document() function

    Hello,
    I'm looking for an example that shows the use of abap xslt with the xslt document() function.  Using the xslt document() function seems like a straightforward way to use xslt to create a result xml document by processing the content of two or more
    source documents.  For example, if source document A.xml and aux.xml are available in  memory as xstringand using stylesheet ztransformwhat would be the argument for the document() function to associate aux.xml.  Thanks for any insight.
    Regards,
    jb10809

    Hi,
    Sorry, perhaps I should have been clearer! The function that I picked just to test what you need to do just happened to return a string that contains SPAN tags with style attributes. The actual function code is:
    create or replace FUNCTION out_string_fn
       RETURN VARCHAR2
    IS
       CURSOR emp_cur
       IS
          SELECT ename
            FROM emp;
       v_string   VARCHAR2 (4000);
    BEGIN
       v_string := ' ';
       FOR c IN emp_cur
       LOOP
          v_string :=
                v_string
             || '&lt;SPAN style="font-weight:bold;color:green"&gt;'
             || c.ename
             || '&lt;/SPAN&gt;'
             || ', &lt;/br&gt;&lt;/br&gt;';
       END LOOP;
       RETURN v_string;
    END;And this returned a naff list in green (see [http://apex.oracle.com/pls/otn/f?p=55041:57] and click the Test button) - but it does show that you can style the validation error messages
    Andy

  • Value Mapping in XSLT

    Hello,
    I am implementing value mapping in XSLT using template
    I call following template to retrieve the value from ID....
    <xsl:template name="NonMerchandiseSaleValueMapping">
    <xsl:param name="GMNonMerchandiseType"/>
    <xsl:value-of select="vm:executeMapping( 'GMNonMerchandiseType', 'GMNonMerchandiseTypeSchema', $GMNonMerchandiseType, 'IXRetailPOSLogLineItemType', 'IXRetailPOSLogLineItemTypeSchema')"/>
    </xsl:template>
    It works fine for 1 entry that was added long back. I added few new entries in ID value mapping table. All of them does not work. Is there any step we need to do after entering new data in value mapping table. I can see the values in cache monitoring also.
    regards
    Grewal

    Hey
    In Both IR and ID go to Environment->Cache Notifications
    Do you see any error(red icon) for cache update,it must be all green to refresh cache.If there are any red color icons,click that and manually do a cache refresh(by clicking the small cache refresh icon).
    also refresh Cache in RWB.
    If all the above does not work,you can re-import the XSLT mapping in IR and see if it works.
    Thanks
    Aamir

  • XSLT and Call transformation

    Hi
    Using <b>XSLT</b> and <b>Call transformation</b> (XSLT scheme) to convert XML file to html the problem is that line breaks in xml are ignored when passing the call tranformation.
    <b>Note in xml look like:</b>
    <com:Note><![CDATA[
    Serie 87% 0,000000
    Amount in this period 01-01-2006 - 01-07-2006 - 180 days
    Currency 16.267.117,38 DKK
    Loan DKK 14.332.700,00
    Debt 7.358.534,23
    Indexsfactor 226,230
    ]]></com:Note>
    <b>When HTML displayed in sap, - note is just a long string which continue out of the screen. Note looks like:</b>Serie 87% 0,000000Amount in this period 01-01-2006 - 01-07-2006 - 180 daysCurrency 16.267.117,38 DKKDebt 7.358.534,23Indexsfactor 226,230
    What to do ? Any ideas ?

    hi Jan,
    Check out the link
    http://www.topxml.com/code/default.asp?p=3&id=v20031025170911&ms=20&l=xsl&sw=categ
    This link contains a file that contains an importable xslt stylesheet with two templates. The first is a text wrap template that breaks texts at carriage returns. You need to modify the xslt.
    [code]<xsl:template name="text.wrap">
            <xsl:param name="texttowrap"/>
            <xsl:variable name="textlength" select="string-length($texttowrap)"/>
            <!-- don't waste time if no text supplied or remaining from recursion-->
            <xsl:if test="$textlength > 0">
                <xsl:choose>
                    <xsl:when test="contains($texttowrap,$CR)">
                        <!-- get the text before the first instance of a carriage return character-->
                        <xsl:variable name="<span  style="background-color:yellow;color:red;font-weight:bold;">line</span>beforefirst<span  style="background-color:yellow;color:red;font-weight:bold;">break</span>" select="substring-before($texttowrap,$CR)"/>
    .................[/code]
    Hope this helps.
    Regards,
    Richa

  • File - convert - xslt 1.0 disabled

    Hello all,
    How can i enable file -> convert -> xslt 1.0 in dreamweaver 8?
    Thanks in advance,
    Carest

    Here it is. Hope this works...
    Good luck!
    .mrLeft{float:left} .mrInfo{border-left:solid 1px #989898;font-size:x-small;color:#989898}
    Mathieu R.  
      CTD - Certified TestStand Developer / Développeur TestStand Certifié  
      CLAD - Certified LabVIEW Associate Developer  
    Attachments:
    Sequence Files 4.5.zip ‏67 KB

  • XSLT transformation on mobile

    Hello,
    I am developing a mobile application where i need to do an XML to XSLT transformation on the mobile phone itself.
    I will store XML and XSLT file in mobile and want to see a WML or XHTML file in the browser.
    Is WTK supporting this?
    Does anybody know library for this/ how can i achieve this.
    thanks,
    Krishna

    {color:#ff0000}{size:20px}CROSS POSTED{size}{color}
    [http://forums.sun.com/thread.jspa?threadID=5335722]
    Cross posting is rude.
    db

  • Help generate dynamic table in xslt for apache FOP

    down vote favorite
    For the following xml file, i need to generate an xsl-fo file to be converted into pdf.
    I am new to style sheets and struggling to create dynamic table. Please help.
    Also, the width for each column varies,based on the column.How would i include this into the code?
    The Column Headers and Column Values are dynamically populated in the xml file. Below is a sample.
    Can anybody please help in generating xsl-fo or xslt code?
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ReportData>
    <ColumnHeaders>
    <ColumnHeader>
    <Name>Col-Header1</Name>
    <Width>5</Length>
    </ColumnHeader>
    <ColumnHeader>
    <Name>Col-Header2</Name>
    <Width>10</Length>
    </ColumnHeader>
    <ColumnHeader>
    <Name>Col-Header3</Name>
    <Width>8</Length>
    </ColumnHeader>
    </ColumnHeaders>
    <Rows>
    <Row>
    <Column>Row1-Col1</Column>
    <Column>Row1-Col2</Column>
    <Column>Row1-Col3</Column>
    </Row>
    <Row>
    <Column>Row2-Col1</Column>
    <Column>Row2-Col2</Column>
    <Column>Row2-Col3</Column>
    </Row>
    </Rows>
    </ReportData>

    I did some xsl-fo a few years ago for a project.
    It was an invoice generator spawning multiple PDFs out of single XML document generated from the database. Pretty cool stuff but very resource-consuming.
    I'm a bit rusty but here's a basic example for a single table, based on your sample data :
    XSLT stylesheet :
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
      <xsl:output indent="yes"/>
      <xsl:template match="/ReportData">
        <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
          <fo:layout-master-set>
            <fo:simple-page-master master-name="Main" margin="8mm"
              page-width="250mm"
              page-height="100mm">
              <fo:region-body />
            </fo:simple-page-master>
          </fo:layout-master-set>
          <fo:page-sequence master-reference="Main">
            <fo:flow flow-name="xsl-region-body">
              <fo:block>
                <fo:table table-layout="fixed" border-style="solid">
                  <xsl:apply-templates select="ColumnHeaders/ColumnHeader" mode="column"/>
                  <xsl:apply-templates select="ColumnHeaders"/>
                  <fo:table-body>
                       <xsl:apply-templates select="Rows/Row"/>
                  </fo:table-body>
                </fo:table>     
              </fo:block>
            </fo:flow>
          </fo:page-sequence>
        </fo:root>
      </xsl:template>
      <xsl:template match="ColumnHeaders">
        <fo:table-header>
             <fo:table-row background-color="rgb(200,200,200)">
                  <xsl:apply-templates select="ColumnHeader" mode="header"/>
             </fo:table-row>
        </fo:table-header>
      </xsl:template>
      <xsl:template match="ColumnHeader" mode="column">
        <fo:table-column column-width="{concat(Width*10,'mm')}"/>
      </xsl:template>
      <xsl:template match="ColumnHeader" mode="header">
        <fo:table-cell border-style="solid">
          <fo:block font-weight="bold"><xsl:value-of select="Name"/></fo:block>
        </fo:table-cell>
      </xsl:template>
      <xsl:template match="Row">
           <fo:table-row>
          <xsl:apply-templates select="Column"/>
        </fo:table-row>
      </xsl:template>
      <xsl:template match="Column">
        <fo:table-cell border-style="solid">
          <fo:block><xsl:value-of select="."/></fo:block>
        </fo:table-cell>
      </xsl:template>
    </xsl:stylesheet>
    {code}
    Calling the XSLT engine and FOP :
    {code}
    D:\XSLT>gen_pdf_otn.bat
    D:\XSLT>java -jar saxon9he.jar -s:in/reportdata.xml -xsl:testfo.xsl -o:out/testfo.xml  2>errors.log
    D:\XSLT>java -jar fop.jar org.apache.fop.cli.Main -fo out/testfo.xml -pdf out/testfo.pdf -c morefontsconfig.xml  2>errors.log
    D:\XSLT>pause
    Appuyez sur une touche pour continuer...
    {code}
    Ouput :
    - The intermediate XSL-FO document :
    {code:xml}
    <?xml version="1.0" encoding="UTF-8"?>
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
       <fo:layout-master-set>
          <fo:simple-page-master master-name="Main" margin="8mm" page-width="250mm" page-height="100mm">
             <fo:region-body/>
          </fo:simple-page-master>
       </fo:layout-master-set>
       <fo:page-sequence master-reference="Main">
          <fo:flow flow-name="xsl-region-body">
             <fo:block>
                <fo:table table-layout="fixed" border-style="solid">
                   <fo:table-column column-width="50mm"/>
                   <fo:table-column column-width="100mm"/>
                   <fo:table-column column-width="80mm"/>
                   <fo:table-header>
                      <fo:table-row background-color="rgb(200,200,200)">
                         <fo:table-cell border-style="solid">
                            <fo:block font-weight="bold">Col-Header1</fo:block>
                         </fo:table-cell>
                         <fo:table-cell border-style="solid">
                            <fo:block font-weight="bold">Col-Header2</fo:block>
                         </fo:table-cell>
                         <fo:table-cell border-style="solid">
                            <fo:block font-weight="bold">Col-Header3</fo:block>
                         </fo:table-cell>
                      </fo:table-row>
                   </fo:table-header>
                   <fo:table-body>
                      <fo:table-row>
                         <fo:table-cell border-style="solid">
                            <fo:block>Row1-Col1</fo:block>
                         </fo:table-cell>
                         <fo:table-cell border-style="solid">
                            <fo:block>Row1-Col2</fo:block>
                         </fo:table-cell>
                         <fo:table-cell border-style="solid">
                            <fo:block>Row1-Col3</fo:block>
                         </fo:table-cell>
                      </fo:table-row>
                      <fo:table-row>
                         <fo:table-cell border-style="solid">
                            <fo:block>Row2-Col1</fo:block>
                         </fo:table-cell>
                         <fo:table-cell border-style="solid">
                            <fo:block>Row2-Col2</fo:block>
                         </fo:table-cell>
                         <fo:table-cell border-style="solid">
                            <fo:block>Row2-Col3</fo:block>
                         </fo:table-cell>
                      </fo:table-row>
                   </fo:table-body>
                </fo:table>
             </fo:block>
          </fo:flow>
       </fo:page-sequence>
    </fo:root>
    {code}
    - and the PDF document :
    http://mbperso.pagesperso-orange.fr/oracle/testfo.pdf                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • XML Parser for Java v2. Applying XSLT to DOM tree

    I encountered pretty weird behavior of XML Parser for Java v2.
    While applying XSLT to XML document created in memory using DOM
    interface I couldn't access element attributes. For example,
    given the XML document:
    <root>
    <Item ID="00001">Value of Item 00001</Item>
    <Item ID="00002">Value of Item 00002</Item>
    </root>
    and XSLT:
    <xsl:template match="/">
    <HTML>
    <HEAD>
    <TITLE>XSLT Test</TITLE>
    </HEAD>
    <BODY>
    <xsl:for-each select="/Error">
    <H1>Error</H1><xsl:value-of select="."/>
    </xsl:for-each>
    <TABLE border="0" cellspacing="0" cellpadding="2">
    <TBODY>
    <xsl:for-each select="/root">
    <TR>
    <TH style="background-color:khaki">
    <xsl:text>Attribute</xsl:text>
    </TH>
    <TH style="background-color:khaki">
    <xsl:text>Value</xsl:text>
    </TH>
    </TR>
    <xsl:for-each select="Item">
    <TR>
    <TD><xsl:value-of select="@ID"/></TD>
    <TD><xsl:value-of select="."/></TD>
    </TR>
    </xsl:for-each>
    </xsl:for-each>
    </TBODY>
    </TABLE>
    </BODY>
    </HTML>
    </xsl:template>
    If I build DOM tree by parsing XML file the resulting HTML
    document after applying XSLT will display
    Attribute Value
    00001 Value of Item 00001
    00002 Value of Item 00002
    But if I build DOM tree using following code:
    XMLDocument xDoc = new XMLDocument();
    Element root = xDoc.createElement( "root" );
    xDoc.appendChild( root );
    Element elem = xDoc.createElement( "Item" );
    elem.setAttribute( "ID", "00001" );
    root.appendChild( elem ).
    appendChild( xDoc.createTextNode( "Value of Item 00001" ) );
    elem = xDoc.createElement( "Item" );
    elem.setAttribute( "ID", "00002" );
    root.appendChild( elem )
    .appendChild( xDoc.createTextNode( "Value of Item 00002" ) );
    the same XSLT will produce the following HTML output:
    Attribute Value
    Value of Item 00001
    Value of Item 00002
    So the value for the ID attribute is not displayed. At the same
    time I can access this attribute using DOM interface. For
    example, following code
    NodeList nList = xDoc.getElementsByTagName( "Item" );
    Element e;
    for( int i = 0; i < nList.getLength(); i++ )
    e = (Element)nList.item( i );
    System.out.println( "ID: " + e.getAttribute( "ID" ) );
    produces an output
    ID: 00001
    ID: 00002
    Here is the code for applying XSLT to DOM tree:
    DOMParser parser = new DOMParser();
    parser.parse( new FileInputStream( "test.xsl" ) );
    XMLDocument xsldoc = parser.getDocument();
    XSLStylesheet xsl = new XSLStylesheet( xsldoc, createURL( "" ) );
    XMLDocument out = new XMLDocument();
    out.appendChild( new XSLProcessor().processXSL(xsl, xDoc) );
    out.print( new FileOutputStream( "test.html" ) );
    Andrei Filimonov
    null

    We are not getting what you're getting on Solaris. See the
    following:
    Script started on Tue Jun 22 18:53:56 1999
    Processing /view/test/vobs/oracore3/.ndeprodrc.csh
    Processing /private/.nderc.csh
    [test] > cat bruno.xml
    <my_grandpa age="88">
    <my_dad age="66">
    <me age="44">
    <my_son age="22">
    </my_son>
    </me>
    </my_dad>
    </my_grandpa>
    [test] > cat bruno.xsl
    <?xml version="1.0"?>
    <!-- Identity transformation -->
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0">
    <xsl:template match="me">
    <xsl:value-of select="my_son/@age"/>
    <xsl:value-of select="@age"/>
    <xsl:value-of select="../@age"/>
    <xsl:value-of select="../../@age"/>
    </xsl:template>
    </xsl:stylesheet>
    [test] > java XSLSample bruno.xsl bruno.xml
    <root>
    22446688
    </root>
    [test] > exit
    script done on Tue Jun 22 18:54:22 1999
    What platform are you on and does your stylesheet and xml doc
    match ours?
    Oracle XML Team
    http://technet.oracle.com
    Oracle Technology Network
    Bruno Bontempi (guest) wrote:
    : I had a similar problem in accessing element attributes from
    an
    : XSLT sheet.
    : It seems like the processor correctly accesses element
    attributes
    : in the context node, but does not retrieve values of
    attributes
    : outside the context node.
    : For example, for an XML document like:
    : <my_grandpa age="88">
    : <my_dad age="66">
    : <me age="44">
    : <my_son age="22">
    : </my_son>
    : </me>
    : </my_dad>
    : </my_grandpa>
    : and an XSL stylesheet like:
    : <xsl:template match="me">
    : <xsl:value-of select="my_son/@age"/>
    : <xsl:value-of select="@age"/>
    : <xsl:value-of select="../@age"/>
    : <xsl:value-of select="../../@age"/>
    : </xsl:template>
    : I expect an output like:
    : 22446688
    : but all I get is
    : 44
    : I am also using Jim Clark's XT, which is returning the
    expected
    : result.
    : Thanks in advance for your help,
    : Bruno.
    : Andrei Filimonov (guest) wrote:
    : : I encountered pretty weird behavior of XML Parser for Java
    v2.
    : : While applying XSLT to XML document created in memory using
    DOM
    : : interface I couldn't access element attributes. For example,
    : : given the XML document:
    : : <root>
    : : <Item ID="00001">Value of Item 00001</Item>
    : : <Item ID="00002">Value of Item 00002</Item>
    : : </root>
    : : and XSLT:
    : : <xsl:template match="/">
    : : <HTML>
    : : <HEAD>
    : : <TITLE>XSLT Test</TITLE>
    : : </HEAD>
    : : <BODY>
    : : <xsl:for-each select="/Error">
    : : <H1>Error</H1><xsl:value-of select="."/>
    : : </xsl:for-each>
    : : <TABLE border="0" cellspacing="0" cellpadding="2">
    : : <TBODY>
    : : <xsl:for-each select="/root">
    : : <TR>
    : : <TH style="background-color:khaki">
    : : <xsl:text>Attribute</xsl:text>
    : : </TH>
    : : <TH style="background-color:khaki">
    : : <xsl:text>Value</xsl:text>
    : : </TH>
    : : </TR>
    : : <xsl:for-each select="Item">
    : : <TR>
    : : <TD><xsl:value-of select="@ID"/></TD>
    : : <TD><xsl:value-of select="."/></TD>
    : : </TR>
    : : </xsl:for-each>
    : : </xsl:for-each>
    : : </TBODY>
    : : </TABLE>
    : : </BODY>
    : : </HTML>
    : : </xsl:template>
    : : If I build DOM tree by parsing XML file the resulting HTML
    : : document after applying XSLT will display
    : : Attribute Value
    : : 00001 Value of Item 00001
    : : 00002 Value of Item 00002
    : : But if I build DOM tree using following code:
    : : XMLDocument xDoc = new XMLDocument();
    : : Element root = xDoc.createElement( "root" );
    : : xDoc.appendChild( root );
    : : Element elem = xDoc.createElement( "Item" );
    : : elem.setAttribute( "ID", "00001" );
    : : root.appendChild( elem ).
    : : appendChild( xDoc.createTextNode( "Value of Item
    00001" )
    : : elem = xDoc.createElement( "Item" );
    : : elem.setAttribute( "ID", "00002" );
    : : root.appendChild( elem )
    : : .appendChild( xDoc.createTextNode( "Value of Item
    00002" )
    : : the same XSLT will produce the following HTML output:
    : : Attribute Value
    : : Value of Item 00001
    : : Value of Item 00002
    : : So the value for the ID attribute is not displayed. At the
    same
    : : time I can access this attribute using DOM interface. For
    : : example, following code
    : : NodeList nList = xDoc.getElementsByTagName( "Item" );
    : : Element e;
    : : for( int i = 0; i < nList.getLength(); i++ )
    : : e = (Element)nList.item( i );
    : : System.out.println( "ID: " + e.getAttribute( "ID" ) );
    : : produces an output
    : : ID: 00001
    : : ID: 00002
    : : Here is the code for applying XSLT to DOM tree:
    : : DOMParser parser = new DOMParser();
    : : parser.parse( new FileInputStream( "test.xsl" ) );
    : : XMLDocument xsldoc = parser.getDocument();
    : : XSLStylesheet xsl = new XSLStylesheet( xsldoc, createURL
    : : XMLDocument out = new XMLDocument();
    : : out.appendChild( new XSLProcessor().processXSL(xsl, xDoc) );
    : : out.print( new FileOutputStream( "test.html" ) );
    : : Andrei Filimonov
    null

  • XML + XSLT - Retaining LF's in output

    Hi
    I am using FOP to process an XML file to a PDF using a XSLT. The
    description column can have LF characters in it, which currently are
    getting filtered out. I have converted teh LF's to the escape codes,
    but this has had no effect (I do something similar with the greater
    than symbol and that works). How do I go about retaining them. This
    has been driving me around the bend for ages. Some guidence in this
    would be most appreciated.
    Below is some sample code illustrating the issue. The second row is
    supposed to span multiple lines in the text cell.
    ------------- XML --------------------------------
    <SERVERS>
    <SERVER>
    <NAME>SERV1.DOMAIN.COM</NAME>
    <DESCRIPTION>This description does not have any LF's in the
    text</DESCRIPTION>
    </SERVER>
    <SERVER>
    <NAME>SERV2.DOMAIN.COM</NAME>
    <DESCRIPTION>This is intended to be a line with a LF between here
    and here and another LF between here
    and here and another
    LF between here
    and here</DESCRIPTION>
    </SERVER>
    </SERVERS>
    ------------- XSLT -------------------------------
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.1"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:fo="http://www.w3.org/1999/XSL/Format"
    xmlns:java="http://xml.apache.org/xslt/java"
    exclude-result-prefixes="java">
    <!-- C:\Files\xml>"C:\Program Files\Apache Software
    Foundation\fop-0.20.5\fop.bat" -xml c:\files\xml\servercr.xml -xsl
    C:\files\xml\servercr.xsl -pdf c:\temp\xml\servercr.pdf -->
    <xsl:template match="SERVERS">
    <xsl:variable name="CR" select="'
    '"/>
    <xsl:variable name="LF" select="'
    '"/>
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
    xmlns:fox="http://xml.apache.org/fop/extensions">
    <fo:layout-master-set>
    <fo:simple-page-master master-name="A4-L" page-width="297mm"
    page-height="210mm" margin-top="10mm" margin-bottom="10mm"
    margin-left="10mm" margin-right="10mm">
    <fo:region-body margin="10mm"/>
    <fo:region-before extent="20mm"/>
    <fo:region-after extent="10mm"/>
    <fo:region-start extent="10mm"/>
    <fo:region-end extent="10mm"/>
    </fo:simple-page-master>
    </fo:layout-master-set>
    <fo:page-sequence master-reference="A4-L">
    <fo:flow flow-name="xsl-region-body">
    <fo:block>
    <fo:table table-layout="fixed" border-color="rgb(0,0,0)"
    border-style="solid" border-width="1pt">
    <fo:table-column column-width="40mm"/>
    <fo:table-column column-width="200mm"/>
    <fo:table-header background-color="rgb(214,214,214)"
    font-size="8pt" font-weight="bold" text-align="center">
    <fo:table-row text-align="center" font-size="8pt">
    <fo:table-cell border-color="rgb(0,0,0)"
    border-style="solid"
    border-width="1pt"><fo:block>Server</fo:block></fo:table-cell>
    <fo:table-cell border-color="rgb(0,0,0)"
    border-style="solid"
    border-width="1pt"><fo:block>Description</fo:block></fo:table-cell>
    </fo:table-row>
    </fo:table-header>
    <fo:table-body>
    <xsl:for-each select="SERVER">
    <fo:table-row text-align="center" font-size="8pt">
    <fo:table-cell border-color="rgb(0,0,0)"
    border-style="solid" border-width="1pt">
    <fo:block vertical-align="middle">
    <xsl:value-of select="NAME"/>
    </fo:block>
    </fo:table-cell>
    <fo:table-cell border-color="rgb(0,0,0)"
    border-style="solid" border-width="1pt">
    <fo:block vertical-align="middle">
    <xsl:value-of select="DESCRIPTION"/>
    </fo:block>
    </fo:table-cell>
    </fo:table-row>
    </xsl:for-each>
    </fo:table-body>
    </fo:table>
    </fo:block>
    </fo:flow>
    </fo:page-sequence>
    </fo:root>
    </xsl:template>
    </xsl:stylesheet>
    I know this isn't an oracle issue, but hopefully someone can point me in the right direction.
    Thanks for your help.
    Nick.

    Hi
    Thanks for your response it was very useful.
    The attribute linefeed-treatment on its own didn't solve the problem, and another link I found suggested that may be a bug. However making use of the attribute white-space-collapse did seem to do what I wanted!
    So it loks like the solution is to use one bug to fix another :) I'm sure that can't be good and is asking for problems later on. But for now it will do.
    Many thanks for your guidance.
    Nick.

  • DVWP XSLT count number of column having Yes/No values for each row

    I have a Data View Web Part .Now I have a column that contains either 'Yes' or 'No'
    and i want to count the number of 'Yes' for the rows and column  .
    below image will help to understand better what i am tying to achieve.  

    Here is XSLT code , you may find this usefull
    Row View Template :
    <xsl:template name="dvt_1.rowview">
          <xsl:param name="Rows"/>
          <xsl:variable name="CountYesForAll" select="number((. = contains(@Richard,'Yes')))
           +number((. = contains(@AndrewP,'Yes')))
           +number((. = contains(@Damien,'Yes')))
           +number((. = contains(@AndrewC,'Yes')))
           +number((. = contains(@Tiffany,'Yes')))
           +number((. = contains(@David,'Yes')))
           +number((. = contains(@Tony,'Yes')))
           +number((. = contains(@Saj,'Yes')))
           +number((. = contains(@Miguel,'Yes')))
           +number((. = contains(@Viv,'Yes')))
           +number((. = contains(@Paula,'Yes')))
           +number((. = contains(@Helen,'Yes')))
           +number((. = contains(@Matthew,'Yes')))"/>
          <xsl:variable name="RichardsCount" select="count($Rows[(@Richard)='Yes'])"></xsl:variable>
          <xsl:variable name="AndrewPsCount" select="count($Rows[(@AndrewP)='Yes'])"></xsl:variable>
          <xsl:variable name="DamiensCount" select="count($Rows[(@Damien)='Yes'])"></xsl:variable>
          <xsl:variable name="AndrewCsCount" select="count($Rows[(@AndrewC)='Yes'])"></xsl:variable>
          <xsl:variable name="TiffanysCount" select="count($Rows[(@Tiffany)='Yes'])"></xsl:variable>
          <xsl:variable name="DavidsCount" select="count($Rows[(@David)='Yes'])"></xsl:variable>
          <xsl:variable name="TonysCount" select="count($Rows[(@Tony)='Yes'])"></xsl:variable>
          <xsl:variable name="SajsCount" select="count($Rows[(@Saj)='Yes'])"></xsl:variable>
          <xsl:variable name="MiguelsCount" select="count($Rows[(@Miguel)='Yes'])"></xsl:variable>
          <xsl:variable name="VivsCount" select="count($Rows[(@Viv)='Yes'])"></xsl:variable>
          <xsl:variable name="PaulasCount" select="count($Rows[(@Paula)='Yes'])"></xsl:variable>
          <xsl:variable name="HelensCount" select="count($Rows[(@Helen)='Yes'])"></xsl:variable>
          <xsl:variable name="MatthewsCount" select="count($Rows[(@Matthew)='Yes'])"></xsl:variable>
      <tr>
       <xsl:if test="position() mod 2 = 1">
        <xsl:attribute name="class">ms-alternating</xsl:attribute>
       </xsl:if>
       <xsl:if test="$dvt_1_automode = '1'" ddwrt:cf_ignore="1">
        <td class="ms-vb" width="1%" nowrap="nowrap">
         <span ddwrt:amkeyfield="ID" ddwrt:amkeyvalue="ddwrt:EscapeDelims(string(@ID))" ddwrt:ammode="view"></span>
        </td>
       </xsl:if>
       <td class="ms-vb">
        <xsl:value-of select="@Title"/>
       </td>
       <td class="ms-vb">
        <xsl:attribute name="style">
         <xsl:if test="normalize-space(@Richard) = 'NA'">background-color: #000000;</xsl:if>
        </xsl:attribute>
        <xsl:value-of select="@Richard"/>
       </td>
       <td class="ms-vb">
        <xsl:attribute name="style">
         <xsl:if test="normalize-space(@AndrewP) = 'NA'">background-color: #000000;</xsl:if>
        </xsl:attribute>
        <xsl:value-of select="@AndrewP"/>
       </td>
       <td class="ms-vb">
        <xsl:attribute name="style">
         <xsl:if test="normalize-space(@Damien) = 'NA'">background-color: #000000;</xsl:if>
        </xsl:attribute>
        <xsl:value-of select="@Damien"/>
       </td>
       <td class="ms-vb">
        <xsl:attribute name="style">
         <xsl:if test="normalize-space(@AndrewC) = 'NA'">background-color: #000000;</xsl:if>
        </xsl:attribute>
        <xsl:value-of select="@AndrewC"/>
       </td>
       <td class="ms-vb">
        <xsl:attribute name="style">
         <xsl:if test="normalize-space(@Tiffany) = 'NA'">background-color: #000000;</xsl:if>
        </xsl:attribute>
        <xsl:value-of select="@Tiffany"/>
       </td>
       <td class="ms-vb">
        <xsl:attribute name="style">
         <xsl:if test="normalize-space(@David) = 'NA'">background-color: #000000;</xsl:if>
        </xsl:attribute>
        <xsl:value-of select="@David"/>
       </td>
       <td class="ms-vb">
        <xsl:attribute name="style">
         <xsl:if test="normalize-space(@Tony) = 'NA'">background-color: #000000;</xsl:if>
        </xsl:attribute>
        <xsl:value-of select="@Tony"/>
       </td>
       <td class="ms-vb">
        <xsl:attribute name="style">
         <xsl:if test="normalize-space(@Saj) = 'NA'">background-color: #000000;</xsl:if>
        </xsl:attribute>
        <xsl:value-of select="@Saj"/>
       </td>
       <td class="ms-vb">
        <xsl:attribute name="style">
         <xsl:if test="normalize-space(@Miguel) = 'NA'">background-color: #000000;</xsl:if>
        </xsl:attribute>
        <xsl:value-of select="@Miguel"/>
       </td>
       <td class="ms-vb">
        <xsl:attribute name="style">
         <xsl:if test="normalize-space(@Viv) = 'NA'">background-color: #000000;</xsl:if>
        </xsl:attribute>
        <xsl:value-of select="@Viv"/>
       </td>
       <td class="ms-vb">
        <xsl:attribute name="style">
         <xsl:if test="normalize-space(@Paula) = 'NA'">background-color: #000000;</xsl:if>
        </xsl:attribute>
        <xsl:value-of select="@Paula"/>
       </td>
       <td class="ms-vb">
        <xsl:attribute name="style">
         <xsl:if test="normalize-space(@Helen) = 'NA'">background-color: #000000;</xsl:if>
        </xsl:attribute>
        <xsl:value-of select="@Helen"/>
       </td>
       <td class="ms-vb">
        <xsl:attribute name="style">
         <xsl:if test="normalize-space(@Matthew) = 'NA'">background-color: #000000;</xsl:if>
        </xsl:attribute>
        <xsl:value-of select="@Matthew"/>
       </td>
       <td>
       <xsl:value-of select="$CountYesForAll"/>
       </td>
       <td>
        <xsl:if test="normalize-space(@Title) = 'Richard'">
         <xsl:value-of select="$CountYesForAll + $RichardsCount"/>
        </xsl:if>
        <xsl:if test="normalize-space(@Title) = 'Andrew P'">
         <xsl:value-of select="$CountYesForAll + $AndrewPsCount"/>
        </xsl:if>
        <xsl:if test="normalize-space(@Title) = 'Damien'">
         <xsl:value-of select="$CountYesForAll + $DamiensCount"/>
        </xsl:if>
        <xsl:if test="normalize-space(@Title) = 'Andrew C'">
         <xsl:value-of select="$CountYesForAll + $AndrewCsCount"/>
        </xsl:if>
        <xsl:if test="normalize-space(@Title) = 'Tiffany'">
         <xsl:value-of select="$CountYesForAll + $TiffanysCount"/>
        </xsl:if>
        <xsl:if test="normalize-space(@Title) = 'David'">
         <xsl:value-of select="$CountYesForAll + $DavidsCount"/>
        </xsl:if>
        <xsl:if test="normalize-space(@Title) = 'Tony'">
         <xsl:value-of select="$CountYesForAll + $TonysCount"/>
        </xsl:if>
        <xsl:if test="normalize-space(@Title) = 'Saj'">
         <xsl:value-of select="$CountYesForAll + $SajsCount"/>
        </xsl:if>
        <xsl:if test="normalize-space(@Title) = 'Miguel'">
         <xsl:value-of select="$CountYesForAll + $MiguelsCount"/>
        </xsl:if>
        <xsl:if test="normalize-space(@Title) = 'Viv'">
         <xsl:value-of select="$CountYesForAll + $VivsCount"/>
        </xsl:if>
        <xsl:if test="normalize-space(@Title) = 'Paula'">
         <xsl:value-of select="$CountYesForAll + $PaulasCount"/>
        </xsl:if>
        <xsl:if test="normalize-space(@Title) = 'Helen'">
         <xsl:value-of select="$CountYesForAll + $HelensCount"/>
        </xsl:if>
        <xsl:if test="normalize-space(@Title) = 'Matthew'">
         <xsl:value-of select="$CountYesForAll + $MatthewsCount"/>
        </xsl:if>
       </td>
      </tr>
     </xsl:template>
    Footer template to show sub total :
    <xsl:template name="dvt_1.footer">
      <xsl:param name="Rows" />
      <div class="bupareport">    
        <table border="0" width="100%" cellpadding="2" cellspacing="0">
       <tr>
        <td width="8%">Sub Total :</td>
        <td width="6%"> <xsl:value-of select="count($Rows[(@Richard)='Yes'])" /></td>
        <td width="6%"> <xsl:value-of select="count($Rows[(@AndrewP)='Yes'])" /></td>
        <td width="6%"> <xsl:value-of select="count($Rows[(@Damien)='Yes'])" /></td>
        <td width="6%"> <xsl:value-of select="count($Rows[(@AndrewC)='Yes'])" /></td>
        <td width="6%"> <xsl:value-of select="count($Rows[(@Tiffany)='Yes'])" /></td>
        <td width="6%"> <xsl:value-of select="count($Rows[(@David)='Yes'])" /></td>
        <td width="6%"> <xsl:value-of select="count($Rows[(@Tony)='Yes'])" /></td>
        <td width="6%"> <xsl:value-of select="count($Rows[(@Saj)='Yes'])" /></td>
        <td width="6%"> <xsl:value-of select="count($Rows[(@Miguel)='Yes'])" /></td>
        <td width="6%"> <xsl:value-of select="count($Rows[(@Viv)='Yes'])" /></td>
        <td width="6%"> <xsl:value-of select="count($Rows[(@Paula)='Yes'])" /></td>
        <td width="6%"> <xsl:value-of select="count($Rows[(@Helen)='Yes'])" /></td>
        <td width="6%"> <xsl:value-of select="count($Rows[(@Matthew)='Yes'])" /></td>
        <td width="6%"> </td>
        <td width="8%"> <xsl:value-of select="@AndrewP"> </xsl:value-of></td>
       </tr>
      </table>
      </div>
     </xsl:template>

  • Different take on conditional formats - parameterizing the color?

    Hi - I'm trying to do conditional formatting, but all the examples & help I've found shows a sample that hardcodes the actual color used. I have a requirement where I need to pass in the color in as part of my XML input.
    The logic used to determine what color to display a number is very complex, and has changed a couple of times already. As such, I'm trying to keep all that logic in a SQL view, rather than reproducing the logic a hundred times over in the XSLT of a handful of reports.
    My datamodel is set up something like this:
    <PROC>
       <APPN>APA</APPN>
       <REQUEST>10,000</REQUEST>
       <SAC>9,500</SAC>
       <SAC_COLOR>red</SAC>
       <HAC>10,000</HAC>
       <HAC_COLOR>black</HAC_COLOR>
    </PROC>
    <PROC>
       <APPN>MSLS</APPN>
       <REQUEST>12,000</REQUEST>
       <SAC>12,500</SAC>
       <SAC_COLOR>green</SAC>
       <HAC>10,000</HAC>
       <HAC_COLOR>black</HAC_COLOR>
    </PROC>
    . . . This bit of XML would generate two rows in a report, with the first row having the "SAC" value colored red, the second row having "SAC" as green.
    So I've tried using something like:
       <?for-each:PROC?>
          <?APPN?>
          <?attribute@incontext:color;SAC_COLOR?><?SAC?>
          <?attribute@incontext:color;HAC_COLOR?><?HAC?>
       <?end for-each?>But that throws errors when it tries to parse it. I've tried a number of different formats of this, as well as the lower-level format:
       <?for-each:PROC?>
             <?APPN?>
             <xsl:attribute name="color"><?SAC_COLOR?></xsl:attribute><?SAC?>
             <xsl:attribute name="color"><?HAC_COLOR?></xsl:attribute><?HAC?>
       <?end for-each?>but haven't had any luck finding something that works.
    I know I could put in a set of if statements or a choose block, but again, that'd mean reproducing the same logic many many times over.... maintenance nightmare.
    Any ideas?
    Thanks in advance,
    -- Andy

    Got closer to an answer, I think. Tried using an XSL variable, and rewrote the logic as below. I used the xsl:attribute because it allowed me to specify the color as the content of an XML tag, rather than an attribute..
    <?for-each:PROC?>
       <?xdoxslt:set_variable($_XDOCTX, ‘colSac’, SAC_COLOR)?>
       <?APPN?>
       <xsl:attribute name=”color”><?xdoxslt:get_variable($_XDOCTX, ‘colSac’)?></xsl:attribute><?SAC?>
    <?end for-each?>and this almost works - I get the correct value from my data substituted in for the get_variable, but the xsl:attribute open/close is rendered as text. So my output for the SAC field ends up reading:
    <xsl:attribute name=”color”>red</xsl:attribute>9,500So I guess I'm using the xsl:attribute tag incorrectly? I've googled that, have found a few examples that show the same sort of notation... am I missing something obvious here?
    Edited by: Tanjental on Jul 16, 2012 8:22 AM

Maybe you are looking for

  • Pop up coming twice while using CL_GUI_FRONTEND_SERVICES= FILE_OPEN_DIALOG

    Hello All,   I am calling the method FILE_OPEN_DIALOG of the class CL_GUI_FRONTEND_SERVICES to display the pop up to select the file from the desktop.After i select the file and execute the program it displays the report and when i clcik the back but

  • Purchase order Creation Problem

    Dear All               For Local purchase NB order creation SAP Asking the Account assignement category. for only particular plant ,It should ask only Service orders. but why its asking the NB orders.      Even Valuation grouping code already assigne

  • How to use customize mouse cursor?

    Hello everyone i want to use my own pictures as the mouse cursor. How can I make it? Thank you

  • Strobing when exporting quicktime movie in 1080i 60

    I have a piece that is intended for television broadcast. The timeline of the piece is set to 1080p 30 and it includes footage that is both 1080p 30 and 1080i 60. I need the quicktime to be exported as HD 1080i 60. When I export the piece using compr

  • Graphics page in pint method

    I have a GUI app that features two JPanels within a split pane. The left pane allows the user to choose a picture file, and the right pane is supposed to display the picture as tiled. Problem is, with the (Graphics page) parameter of the paint method