Re: XSLT versus AWK

Ihe Onwuka <[email protected]>
Newsgroups gmane.text.xml.devel
Message-ID <CALfs7+zRywaQMmX25jtPHoG=gAAXtJqQkpTqPEucmsAYya8SOQ@mail.gmail.com>
I like awk alot (not the sort you pasted there though) but it doesn't
support lexical scoping so that would be the limiting use case except most
of the things I do with awk do not require lexical scoping.

What makes it more interesting is that it supports streaming and there is
an XML library for it http://gawkextlib.sourceforge.net/xml/gawk-xml.html

On Sun, Jul 31, 2022 at 7:22 AM Roger L Costello <[email protected]> wrote:

> Hi Folks,
>
> XSLT is a programming language specifically designed for processing
> textual data that is formatted as XML.
>
> AWK is a programming language specifically designed for processing textual
> data that is formatted as records containing fields. Interestingly, I have
> observed that the records/fields format is the one used for input and
> output by most UNIX tools.
>
> XSLT and AWK are mature programming languages. XSLT was created roughly 24
> years ago at the W3C. AWK was created roughly 45 years ago at Bell Labs by
> Alfred Aho, Peter Weinberger, and Brian Kernighan (the name AWK comes from
> their last names).
>
> XSLT and AWK substantially reduce -- relative to other programming
> languages -- the amount of code, time, and effort needed to process their
> respective data formats. A developer will be far more productive writing an
> XSLT program to process XML-formatted data than if he were to write the
> program in some other programming language. A developer will be far more
> productive writing an AWK program to process records-and-fields-formatted
> data than if he were to write the program in some other programming
> language.
>
> XSLT and AWK are complimentary. An XSLT program can convert an XML
> document into a document containing records and fields. An AWK program can
> convert a document consisting of records and fields into an XML document.
> In fact, just yesterday I did that very thing -- I wrote an AWK program to
> convert to XML a huge document containing records with tab-delimited
> fields, where the first record contained column headers. See my simple,
> short AWK program below (note: I am an AWK newbie, so there are likely
> better ways to write the program).
>
> *Lesson Learned*: Use the right programming language for the right data
> format.
>
> /Roger
>
> *convert2xml.awk*
>
> BEGIN   {  # field separator is tab (x09)
>                  # record separator is CRLF (\r\n)
>                   FS = "\t"
>                   RS = "\r\n"
>                  print "<Airport>"
>                }
> NR==1   {  # get column header names, store in an array
>                   for (i=1; i<=NF; i++)
>                      header[i] = $i;
>                }
> NR!=1   {  # create a <Row>...</Row> element for the line
>                   # surround field $i with a start/end tag named header[i]
>                   print "<Row>"
>                   for (i=1; i<=NF; i++)
>                      print "<" header[i] ">" $i "</" header[i] ">"
>                   print "</Row>"
>                }
> END       { print "</Airport>" }
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.