Solved

xslt generator

Posted on 2009-05-14
11
522 Views
Last Modified: 2013-11-18
Is there any xslt generator help to generate an xslt from an xml raw data file + html output?
0
Comment
Question by:kennysflau
  • 5
  • 3
  • 3
11 Comments
 

Author Comment

by:kennysflau
Comment Utility
<html>
   <body>
      <table width="640" border="2">
         
            <tr><td>companyKeyOrderNo</td><td>00001</td></tr>
            <tr><td>orderType</td><td>OH</td></tr>
            <tr><td>documentOrderInvoiceE</td><td>6255</td></tr>
            <tr><td>lineNumber</td><td>2.000</td></tr>
            <tr><td>statusCodeLast</td><td>225</td></tr>
            <tr><td>costCenter</td><td>19999</td></tr>
            <tr><td>addressNumber</td><td>32773</td></tr>
            <tr><td>itemNumberRelatedKit</td><td></td></tr>
            <tr><td>descriptionLine1</td><td>Stationery </td></tr>
            <tr><td>orderSuffix</td><td>000</td></tr>
                  <tr><td>identifier2ndItem</td><td>392-00</td></tr>
         
            <tr><td>companyKeyOrderNo</td><td>00001</td></tr>
            <tr><td>orderType</td><td>OH</td></tr>
            <tr><td>documentOrderInvoiceE</td><td>6255</td></tr>
            <tr><td>lineNumber</td><td>1.000</td></tr>
            <tr><td>statusCodeLast</td><td>420</td></tr>
            <tr><td>costCenter</td><td>19999</td></tr>
            <tr><td>addressNumber</td><td>32773</td></tr>
            <tr><td>itemNumberRelatedKit</td><td></td></tr>
            <tr><td>descriptionLine1</td><td>Stationery </td></tr>
            <tr><td>orderSuffix</td><td>000</td></tr>
                  <tr><td>identifier2ndItem</td><td>392-00</td></tr>
             
         <tr><td>companyKeyOrderNo</td><td>00001</td></tr>
         <tr><td>orderType</td><td>OH</td></tr>
         <tr><td>documentOrderInvoiceE</td><td>6244</td></tr>
         <tr><td>lineNumber</td><td>1.000</td></tr>
         <tr><td>statusCodeLast</td><td>280</td></tr>
         <tr><td>costCenter</td><td>19999</td></tr>
         <tr><td>addressNumber</td><td>32324</td></tr>
         <tr><td>itemNumberRelatedKit</td><td></td></tr>
         <tr><td>descriptionLine1</td><td>Printing </td></tr>
         <tr><td>orderSuffix</td><td>000</td></tr>
             <tr><td>identifier2ndItem</td><td>390-00</td></tr>
         
      </table>
   </body>
</html>
0
 

Author Comment

by:kennysflau
Comment Utility
<env:Envelope
  xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:ns0="http://oracle.e1.bssv.JPF43111/types/">
 <env:Body>
  <ans1:getF4311ResponseElement
    xmlns:ans1="http://oracle.e1.bssv.JPF43111/"
    xsi:type="ns0:F4311_List">
   <ns0:e1MessageList/>
   <ns0:result
     xsi:type="ns0:F4311_Output">
    <ns0:companyKeyOrderNo>00001</ns0:companyKeyOrderNo>
    <ns0:orderType>OH</ns0:orderType>
    <ns0:documentOrderInvoiceE>6255</ns0:documentOrderInvoiceE>
    <ns0:lineNumber>2.000</ns0:lineNumber>
    <ns0:statusCodeLast>225</ns0:statusCodeLast>
    <ns0:costCenter> 19999</ns0:costCenter>
    <ns0:addressNumber>32773</ns0:addressNumber>
    <ns0:itemNumberRelatedKit/>
    <ns0:descriptionLine1>Stationery </ns0:descriptionLine1>
    <ns0:orderSuffix>000</ns0:orderSuffix>
    <ns0:identifier2ndItem>392-00 </ns0:identifier2ndItem>
   </ns0:result>
   <ns0:result
     xsi:type="ns0:F4311_Output">
    <ns0:companyKeyOrderNo>00001</ns0:companyKeyOrderNo>
    <ns0:orderType>OH</ns0:orderType>
    <ns0:documentOrderInvoiceE>6255</ns0:documentOrderInvoiceE>
    <ns0:lineNumber>1.000</ns0:lineNumber>
    <ns0:statusCodeLast>420</ns0:statusCodeLast>
    <ns0:costCenter> 19999</ns0:costCenter>
    <ns0:addressNumber>32773</ns0:addressNumber>
    <ns0:itemNumberRelatedKit/>
    <ns0:descriptionLine1>Stationery </ns0:descriptionLine1>
    <ns0:orderSuffix>000</ns0:orderSuffix>
    <ns0:identifier2ndItem>392-00 </ns0:identifier2ndItem>
   </ns0:result>
   <ns0:result
     xsi:type="ns0:F4311_Output">
    <ns0:companyKeyOrderNo>00001</ns0:companyKeyOrderNo>
    <ns0:orderType>OH</ns0:orderType>
    <ns0:documentOrderInvoiceE>6244</ns0:documentOrderInvoiceE>
    <ns0:lineNumber>1.000</ns0:lineNumber>
    <ns0:statusCodeLast>280</ns0:statusCodeLast>
    <ns0:costCenter> 19999</ns0:costCenter>
    <ns0:addressNumber>32324</ns0:addressNumber>
    <ns0:itemNumberRelatedKit/>
    <ns0:descriptionLine1>Printing </ns0:descriptionLine1>
    <ns0:orderSuffix>000</ns0:orderSuffix>
    <ns0:identifier2ndItem>390-00 </ns0:identifier2ndItem>
   </ns0:result>
  </ans1:getF4311ResponseElement>
 </env:Body>
</env:Envelope>
0
 
LVL 39

Expert Comment

by:abel
Comment Utility
How would that XSLT generator look like? XSLT is a programming language and you can do (almost) anything with it in regards to transforming one format into the other. The output can be XML, HTML, Text, and with XSLT 2.0 even other formats can be supported (actually, in XSLT 1.0 as well, but that requires extensions).

It seems that your XSLT contains nodes under ns0:result which should be translated into <td>keyname</td><td>keyvalue</td>. This only requires a few lines of XSLT to do. Hold on a minute., I'll dig up an example.

- Abel --
0
 
LVL 39

Expert Comment

by:abel
Comment Utility
PS: in the future, please use "Attach code snippet", it is there for a reason: makes the thread more readable and the code easier to cut and paste.
0
 
LVL 39

Expert Comment

by:abel
Comment Utility
My 10 minutes. This little XSLT will provide the output you specified:


<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet

    xmlns:types="http://oracle.e1.bssv.JPF43111/types/"

    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 

    <xsl:output method="html" indent="yes" />

    

    <xsl:template match="/">

        <html>

            <body>

                <table width="640" border="2">

                    <xsl:apply-templates select="*" />

                </table>

            </body>

        </html>

    </xsl:template>

    

    <xsl:template match="types:result/*">

        <tr>

            <td><xsl:value-of select="local-name(.)"/></td>

            <td><xsl:value-of select="."/></td>

        </tr>

    </xsl:template>

    

    <!-- do not output anything for nodes we do not specify -->

    <xsl:template match="* | node()" >

        <xsl:apply-templates select="*" />

    </xsl:template>

    

</xsl:stylesheet>

Open in new window

0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 39

Expert Comment

by:abel
Comment Utility
More to the point, because I used indent="yes", this is the output when I run it against your data:

<html xmlns:types="http://oracle.e1.bssv.JPF43111/types/">

   <body>

      <table width="640" border="2">

         <tr>

            <td>companyKeyOrderNo</td>

            <td>00001</td>

         </tr>

         <tr>

            <td>orderType</td>

            <td>OH</td>

         </tr>

         <tr>

            <td>documentOrderInvoiceE</td>

            <td>6255</td>

         </tr>

         <tr>

            <td>lineNumber</td>

            <td>2.000</td>

         </tr>

         <tr>

            <td>statusCodeLast</td>

            <td>225</td>

         </tr>

         <tr>

            <td>costCenter</td>

            <td> 19999</td>

         </tr>

         <tr>

            <td>addressNumber</td>

            <td>32773</td>

         </tr>

         <tr>

            <td>itemNumberRelatedKit</td>

            <td></td>

         </tr>

         <tr>

            <td>descriptionLine1</td>

            <td>Stationery </td>

         </tr>

         <tr>

            <td>orderSuffix</td>

            <td>000</td>

         </tr>

         <tr>

            <td>identifier2ndItem</td>

            <td>392-00 </td>

         </tr>

         <tr>

            <td>companyKeyOrderNo</td>

            <td>00001</td>

         </tr>

         <tr>

            <td>orderType</td>

            <td>OH</td>

         </tr>

         <tr>

            <td>documentOrderInvoiceE</td>

            <td>6255</td>

         </tr>

         <tr>

            <td>lineNumber</td>

            <td>1.000</td>

         </tr>

         <tr>

            <td>statusCodeLast</td>

            <td>420</td>

         </tr>

         <tr>

            <td>costCenter</td>

            <td> 19999</td>

         </tr>

         <tr>

            <td>addressNumber</td>

            <td>32773</td>

         </tr>

         <tr>

            <td>itemNumberRelatedKit</td>

            <td></td>

         </tr>

         <tr>

            <td>descriptionLine1</td>

            <td>Stationery </td>

         </tr>

         <tr>

            <td>orderSuffix</td>

            <td>000</td>

         </tr>

         <tr>

            <td>identifier2ndItem</td>

            <td>392-00 </td>

         </tr>

         <tr>

            <td>companyKeyOrderNo</td>

            <td>00001</td>

         </tr>

         <tr>

            <td>orderType</td>

            <td>OH</td>

         </tr>

         <tr>

            <td>documentOrderInvoiceE</td>

            <td>6244</td>

         </tr>

         <tr>

            <td>lineNumber</td>

            <td>1.000</td>

         </tr>

         <tr>

            <td>statusCodeLast</td>

            <td>280</td>

         </tr>

         <tr>

            <td>costCenter</td>

            <td> 19999</td>

         </tr>

         <tr>

            <td>addressNumber</td>

            <td>32324</td>

         </tr>

         <tr>

            <td>itemNumberRelatedKit</td>

            <td></td>

         </tr>

         <tr>

            <td>descriptionLine1</td>

            <td>Printing </td>

         </tr>

         <tr>

            <td>orderSuffix</td>

            <td>000</td>

         </tr>

         <tr>

            <td>identifier2ndItem</td>

            <td>390-00 </td>

         </tr>

      </table>

   </body>

</html>

Open in new window

0
 
LVL 60

Accepted Solution

by:
Geert Bormans earned 250 total points
Comment Utility
I think you are referring to something like this
http://www.stylusstudio.com/xslt_designer.html
But tools like that have limitations,
anyway, it can get you started,
you can download it to have a test
0
 

Author Comment

by:kennysflau
Comment Utility
Thanks Gertone, yes this is what I need.

Do you know if I can something like this but free of charge?
0
 
LVL 60

Expert Comment

by:Geert Bormans
Comment Utility
No, as far as I know there are two products of this kind.
The second delivers obscure XSLT and is more expensive, so I don't mention it
(and by the way I hate Altova tools :)
0
 
LVL 60

Expert Comment

by:Geert Bormans
Comment Utility
Money on Stylus Studio is by the way very well spent
0
 
LVL 39

Expert Comment

by:abel
Comment Utility
So much for giving a full, simple solution that gives you the requested output... :(

Anyway, glad that you found what you want. I know I didn't answer your original request, mainly because these tools seldomly create helpful XSLT files, let alone performant or elegant and that I just wanted to show you how easy it can be to do it by hand (and in my case, I use oXygen or Stylus Studio). I second the opinion of Gertone on Mapforce, I tried it years ago and won't do that again any time soon.


0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

Most of the sites are being standardized with W3C Web Standards. W3C provides lot of web standard services to the web. They have the web specification, process and documentation for all the web standards. You can apply HTML, CSS and Accessibility st…
Shoutout to Emily Plummer (http://www.experts-exchange.com/members/eplummer26.html) for giving me this article! She did most of it, I just finished it up and posted it for her :)    Introduction In a previous article (http://www.experts-exchang…
HTML5 has deprecated a few of the older ways of showing media as well as offering up a new way to create games and animations. Audio, video, and canvas are just a few of the adjustments made between XHTML and HTML5. As we learned in our last micr…
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

7 Experts available now in Live!

Get 1:1 Help Now