Unwrap Para for HTML?

4 views
Skip to first unread message

Lane Whittaker

unread,
Apr 16, 2008, 8:13:45 PM4/16/08
to SemWare
Before I try to re-invent the wheel, has anyone done anything along
the lines of a macro to "unwrap" a paragraph? Probably in regards to
HTML.

The situation is I have a number of text files created in TSE that I
want to put on a Wiki website. While the page size suits me, my very
slight nodding acquaintance with HTML indicates it's preferable to not
have embedded EoLs in text bodies to make the page display cleanly for
others with different display requirements. So, I need to unwrap all
my paragraphs. The Wiki will recognize HTML code, but doesn't require
it. It will automatically adjust pasted long lines to fit the
display.

I've done it manually, so I know the issues. But over the course of
several thousand KB that gets tedious real fast. The real kicker is
detecting "lists". I don't see any way except the "Mark I Eyeball"
to catch them and skip over them. But even something that deals with
one para at time is an improvement over concatenating a line at a time
working backwards through a paragraph.

Anyone have anything or suggestions?

--LaneW

Hayes Smith

unread,
Apr 16, 2008, 8:50:26 PM4/16/08
to sem...@googlegroups.com
One way is to select the Options pulldown menu, set the right margin to
16000, go back to the text, make sure the paragraphs are separated by at
least one empty line, mark with a line block all of the paragraphs you want
unwrapped, and use the wordwrap command. You wind up with all of the
paragraphs becoming one line each (as long as the total number of characters
in the paragraph was less than 16000.)

I do this all the time when doing any kind of text in TSE that I plan to put
in internet messages or transfer to Word, Notepad, or other word processors.

S.E. Mitchell

unread,
Apr 16, 2008, 9:30:34 PM4/16/08
to sem...@googlegroups.com
Here is what I use. But it relies on a marked block, and has no
notion regarding lists:

integer temp_id

/**************************************************************
Copy a block to the Windows clipboard.
Before being copied, the block is wrapped at the maximum line
length.
**************************************************************/
proc main()
integer right_margin, marked_it

marked_it = False
if isBlockMarked()
if not isBlockInCurrFile()
Warn("Block not in current file")
return ()
endif
elseif Query(UseCurrLineIfNoBlock)
MarkLine()
marked_it = True
else
Warn("No block")
return ()
endif

right_margin = Set(RightMargin, MAXLINELEN)
PushBlock()
PushPosition()
if temp_id == 0 or not GotoBufferId(temp_id)
temp_id = CreateTempBuffer()
endif
EmptyBuffer()
CopyBlock()
BegFile()
repeat until not WrapPara()
BegFile()
MarkChar()
EndFile()
MarkChar()
CopyToWinClip()

Set(RightMargin, right_margin)
PopPosition()
PopBlock()
if marked_it or Query(UnMarkAfterPaste) <> Off
UnMarkBlock()
endif
end

Weitenberg, J.J.S.

unread,
Apr 17, 2008, 3:16:17 AM4/17/08
to sem...@googlegroups.com
There is a macro docmode that a.o. saves a paragraph as a single line

Jos Weitenberg

________________________________

From: sem...@googlegroups.com on behalf of Lane Whittaker
Sent: Thu 4/17/2008 2:13 AM
To: SemWare
Subject: [TSE] Unwrap Para for HTML?

winmail.dat

knud van eeden

unread,
Apr 17, 2008, 5:44:16 AM4/17/08
to sem...@googlegroups.com
Possibly let be known if the proposed solutions are fulfilling the
issue.

If there still are wishes after using this macros or techniques, possibly supply some specific source code examples about how it should be and how it is now.

with friendly greetings,
Knud van Eeden

----- Original Message ----
From: Lane Whittaker <y8norx...@sneakemail.com>
To: SemWare <sem...@googlegroups.com>

Sent: Thursday, April 17, 2008 2:13:45 AM
Subject: [TSE] Unwrap Para for HTML?


Before I try to re-invent the wheel, has anyone done anything along
the lines of a macro to "unwrap" a paragraph? Probably in regards to
HTML.

The situation is I have a number of text files created in TSE that I
want to put on a Wiki website. While the page size suits me, my very
slight nodding acquaintance with HTML indicates it's preferable to not
have embedded EoLs in text bodies to make the page display cleanly for
others with different display requirements. So, I need to unwrap all
my paragraphs. The Wiki will recognize HTML code, but doesn't require
it. It will automatically adjust pasted long lines to fit the
display.

I've done it manually, so I know the issues. But over the course of
several thousand KB that gets tedious real fast. The real kicker is
detecting "lists". I don't see any way except the "Mark I Eyeball"
to catch them and skip over them. But even something that deals with
one para at time is an improvement over concatenating a line at a time
working backwards through a paragraph.

Anyone have anything or suggestions?

--LaneW


____________________________________________________________________________________
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ

Fred Holmes

unread,
Apr 17, 2008, 9:49:22 AM4/17/08
to sem...@googlegroups.com, Lane Whittaker
There is a macro, 1liner.s, that is (should be) in the macros on the Semware web site, that unwraps paragraphs for the whole document or within a marked block. It's been around for a long while.

It seems it's called 1liner2.zip at this point and is at the top of the list.

http://www.semware.com/html/tseprofiles.php

The version I'm using came programmed to put two spaces after every period (like old typewriter formatting for the period at the end of a sentence). You may want to rem out that part of the code.

Fred Holmes

Steve Cramer

unread,
Apr 17, 2008, 9:58:53 AM4/17/08
to sem...@googlegroups.com
Anybody have an XML to text converter? A client wants to send me a data
file in XML but our software is set up to read flat ASCII.

I can't see why XML is any kind of advantage for storing data, when you
have something like <gender>M</gender> for every person instead of a
simple M. That's almost a 20:1 inflation. Can you tell I started out
with cards? ;)

Steve
--
Steve Cramer
Athens, GA
http://www.savvypaddler.com

Lane Whittaker

unread,
Apr 17, 2008, 11:10:24 AM4/17/08
to SemWare
From the description it looks like the "1Liner" macro will meet my
needs.

Thanks for everyone's help.

--LaneW

Jim Sylva

unread,
Apr 17, 2008, 11:24:24 AM4/17/08
to sem...@googlegroups.com
I  use XML for much of my data storage. I then write XSLT style sheets to convert the data to HTML, using CSS to style the HTML elements. I find this method to be highly flexible. For example, using this method one can create various views of the same data.

Here's a good article on XSLT: http://www.ibm.com/developerworks/xml/library/x-xslt/. The author of this article has written top-notch XSLT processors, some of which are free. I still use XSLT v. 1.0, not v. 2.0.

You could strip the tags using regular expressions in TSE, or you could write a XSLT style sheet to accomplish the task. The later would require an investment of time learning XSLT, but I think it would be worth the effort.

Carlo Hogeveen

unread,
Apr 17, 2008, 11:25:45 AM4/17/08
to sem...@googlegroups.com

This is an XML to text converter:

Using TSE replace "</?.*>" by "" with options "gnx".

Caveat: it depends on the text not containing "<" and ">".

> Anybody have an XML to text converter? A client wants to send me a data
> file in XML but our software is set up to read flat ASCII.
>
> I can't see why XML is any kind of advantage for storing data, when you
> have something like <gender>M</gender> for every person instead of a
> simple M. That's almost a 20:1 inflation. Can you tell I started out
> with cards? ;)
>
> Steve

knud van eeden

unread,
Apr 17, 2008, 11:57:41 AM4/17/08
to sem...@googlegroups.com
A few quick remarks

XML:

1. Easier data exchange: you can convert your data rather automatically to other formats
(at the price of putting some extra information in it). E.g. RSS.

2. Standard format: It uses a standard format

3. Formats to simplify XML have been created, e.g. JSON

4. In general I would go for tables (that is rows and columns to store the data in) which I store and handle in TSE on my local machine or USB stick. Then convert it e.g. to SQL which I copy/paste in a MySql client. And MySql has converting routines from database tables to XML.
Similar to mathematics, where the rectangle is one of the simplest geometric figures, the table (this rectangular collection of rows and columns) is one of the simplest structures (and most versatile structures) to store your data in.

5. XSLT is certainly not an intuitive language. It is a special case of a tree processing language (of which XML is a special case). So using recursion and the like. Rather difficult to learn. You usually copy paste from something that works, and adapt it to your needs.

with friendly greetings,
Knud van Eeden


----- Original Message ----
From: Steve Cramer <cram...@charter.net>
To: sem...@googlegroups.com
Sent: Thursday, April 17, 2008 3:58:53 PM
Subject: [TSE] XML


Anybody have an XML to text converter? A client wants to send me a data
file in XML but our software is set up to read flat ASCII.

I can't see why XML is any kind of advantage for storing data, when you
have something like <gender>M</gender> for every person instead of a
simple M. That's almost a 20:1 inflation. Can you tell I started out
with cards? ;)

Steve
--
Steve Cramer
Athens, GA
http://www.savvypaddler.com

Steve Cramer

unread,
Apr 17, 2008, 12:16:44 PM4/17/08
to sem...@googlegroups.com
Thanks for the observations. I should have been more precise in my
question. I want to convert an XML file into a rectangular text file
(persons as rows and fields as columns) as knud describes below. CSV
would work, also, even XLS.

Steve

knud van eeden

unread,
Apr 17, 2008, 12:49:26 PM4/17/08
to sem...@googlegroups.com
Quick response:


How to convert XML to a text table?

1. In that case using an XSLT program would be indeed a method.

http://www.google.com/search?hl=en&lr=&ie=ISO-8859-1&q=XSLT%20convert%20XML%20SQL

So you have
1. Your XML program
2. Your XSLT program
3. In your XML program you write in the top where the XSLT program is located (usually in the same directory)
4. Then you start your XML program (e.g. from the command line
'start <your XML program name>', or double click it in e.g. WIndows Explorer) to see the (text table) output, which you can copy/paste

2. Other approaches:

XML -> CSV -> Import in database -> Table

And I have written a TSE routine (I use it myself quite a lot, some manual editing is currently necessary, but it does the job) which converts CSV to (=fixed (column distance) values. Or thus text tables.

http://www.knudvaneeden.com/tinyurl.php?urlKey=url000031

3. The other way around convert a database table back to XML, you can e.g. use

mysqldump

with the parameter

-X
or
--xml

to dump your database tables as well-formed XML.

4. Also have a look at e.g. the program XMLSpy.

Steve

Ed Ahlsen-Girard

unread,
Apr 17, 2008, 3:54:55 PM4/17/08
to sem...@googlegroups.com
Although Knud beat me to it, the nickel summary is that XML was not designed to *store* data at all, just to move it. It's getting used to store data now, though, as disk gets so cheap that it makes old guys like me start to giggle uncontrollably.

 
--
 
Ed Ahlsen-Girard
Senior Network Engineer
TYBRIN Corporation
tybrin.com
850-337-2830
850-337-2885 (fax)
This e-mail and any files transmitted with it are the property of TYBRIN Corporation, are private, and are intended solely for the use of the individual or entity to which this email is addressed. If you are not one of the named recipient(s) or otherwise have reason to believe that you have received this message in error, please delete this message immediately. Any other use, retention, dissemination, forwarding, printing, or copying of this e-mail is strictly prohibited.

knud van eeden

unread,
Apr 18, 2008, 7:39:50 AM4/18/08
to sem...@googlegroups.com, TSEPro Support
Converting XML
http://www.knudvaneeden.com/tinyurl.php?urlKey=url000133

with friendly greetings,
Knud van Eeden

----- Original Message ----
From: knud van eeden <knud_va...@yahoo.com>
To: sem...@googlegroups.com

Sent: Thursday, April 17, 2008 6:49:26 PM
Subject: [TSE] Re: XML


Quick response:


How to convert XML to a text table?

1. In that case using an XSLT program would be indeed a method.

http://www.google.com/search?hl=en&lr=&ie=ISO-8859-1&q=XSLT%20convert%20XML%20SQL

So you have
1. Your XML program
2. Your XSLT program
3. In your XML program you write in the top where the XSLT program is located (usually in the same directory)
4. Then you start your XML program (e.g. from the command line
'start <your XML program name>', or double click it in e.g. WIndows Explorer) to see the (text table) output, which you can copy/paste

2. Other approaches:

XML -> CSV -> Import in database -> Table

And I have written a TSE routine (I use it myself quite a lot, some manual editing is currently necessary, but it does the job) which converts CSV to (=fixed (column distance) values. Or thus text tables.

http://www.knudvaneeden.com/tinyurl.php?urlKey=url000031

3. The other way around convert a database table back to XML, you can e.g. use

mysqldump

with the parameter

-X
or
--xml

to dump your database tables as well-formed XML.

4. Also have a look at e.g. the program XMLSpy.

with friendly greetings,
Knud van Eeden

Steve

Jerry Sheehan

unread,
Apr 18, 2008, 8:48:33 AM4/18/08
to SemWare
Hi Steve,

If you're looking for an "easy to use" intuitive graphical user
interface tool to do the job, without the need of any coding
knowledge, then check out MapForce. This is the easiest tool for you
by far.

http://www.altova.com/products/mapforce/data_mapping.html


Jerry Sheehan
http://www.xmlscoop.com

Jerry Sheehan

unread,
Apr 18, 2008, 8:48:33 AM4/18/08
to SemWare
Hi Steve,

If you're looking for an "easy to use" intuitive graphical user
interface tool to do the job, without the need of any coding
knowledge, then check out MapForce. This is the easiest tool for you
by far.

http://www.altova.com/products/mapforce/data_mapping.html


Jerry Sheehan
http://www.xmlscoop.com


On Apr 17, 12:16 pm, Steve Cramer <cramer...@charter.net> wrote:

Jerry Sheehan

unread,
Apr 18, 2008, 8:48:33 AM4/18/08
to SemWare
Hi Steve,

If you're looking for an "easy to use" intuitive graphical user
interface tool to do the job, without the need of any coding
knowledge, then check out MapForce. This is the easiest tool for you
by far.

http://www.altova.com/products/mapforce/data_mapping.html


Jerry Sheehan
http://www.xmlscoop.com


On Apr 17, 12:16 pm, Steve Cramer <cramer...@charter.net> wrote:

Jerry Sheehan

unread,
Apr 18, 2008, 8:48:33 AM4/18/08
to SemWare
Hi Steve,

If you're looking for an "easy to use" intuitive graphical user
interface tool to do the job, without the need of any coding
knowledge, then check out MapForce. This is the easiest tool for you
by far.

http://www.altova.com/products/mapforce/data_mapping.html


Jerry Sheehan
http://www.xmlscoop.com


On Apr 17, 12:16 pm, Steve Cramer <cramer...@charter.net> wrote:

knud van eeden

unread,
Apr 18, 2008, 11:54:27 AM4/18/08
to sem...@googlegroups.com
This shows thus a possible method

Converting XML to SQL and SQL to CSV
http://www.knudvaneeden.com/tinyurl.php?urlKey=url000133

Depending on the given XML data file this might work out of the box, otherwise
there must be done some adaptations.

with friendly greetings,
Knud van Eeden

----- Original Message ----
From: Steve Cramer <cram...@charter.net>
To: sem...@googlegroups.com

Sent: Thursday, April 17, 2008 6:16:44 PM
Subject: [TSE] Re: XML

Jim Sylva

unread,
Apr 18, 2008, 1:31:41 PM4/18/08
to sem...@googlegroups.com
Knud and Steve,

Here's a different XSLT style sheet approach that will yield the same
result as the example Knud provided.

--- cut here: begin --------------------------------------------------

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

<!-- output as text, strip whitespace -->
<xsl:output method="text" indent="no" />
<xsl:strip-space elements="*"/>

<!-- look for the table node -->
<xsl:template match="table" >
<xsl:apply-templates select="record" />
</xsl:template>

<xsl:template match="record">
<xsl:text>INSERT INTO </xsl:text>
<xsl:value-of select="/table/@name" />
<xsl:text>(</xsl:text>
<xsl:apply-templates select="child::*" mode="insert" />
<xsl:text>VALUES(</xsl:text>
<xsl:apply-templates select="child::*" mode="values" />
</xsl:template>

<xsl:template match="child::*" mode="insert">
<xsl:value-of select="name()" />
<xsl:choose>
<xsl:when test="position() != last()">, </xsl:when>
<xsl:otherwise>) </xsl:otherwise>
</xsl:choose>
</xsl:template>

<xsl:template match="child::*" mode="values">
<xsl:param name="quoted-value" select="concat('"',.,'"')" />
<xsl:value-of select="$quoted-value" />
<xsl:choose>
<xsl:when test="position() != last()">,</xsl:when>
<xsl:otherwise>);</xsl:otherwise>
</xsl:choose>
</xsl:template>

</xsl:stylesheet>

--- cut here: end ----------------------------------------------------


knud van eeden

unread,
Apr 18, 2008, 1:54:32 PM4/18/08
to sem...@googlegroups.com
Jim,

Using Internet Explorer v7, I get an error using the XSLT stylesheet:

Required white space was missing. Error processing resource

<xsl:param name="quoted-value" select="concat('"',.,'"')" />

----------------------------------------------------^

with friendly greetings,
Knud van Eeden


Knud and Steve,

</xsl:stylesheet>

Jim Sylva

unread,
Apr 18, 2008, 2:01:32 PM4/18/08
to sem...@googlegroups.com
The code needs to read:

xsl:param name="quoted-value" select="concat('&#34;',.,'&#34;')"

I hope this works. I use Michael Kaye's Saxon. That might be the difference.

knud van eeden wrote:
> Jim,
>
> Using Internet Explorer v7, I get an error using the XSLT stylesheet:
>
> Required white space was missing. Error processing resource

> xsl:param name="quoted-value" select="concat('&#34;',.,'&#34;')"

knud van eeden

unread,
Apr 18, 2008, 2:24:53 PM4/18/08
to sem...@googlegroups.com
This works in Microsoft Internet Explorer:

<xsl:param name="quoted-value" select="concat( '&quot;', . , '&quot;' )" />

----- Original Message ----
From: Jim Sylva <jas...@northrim.net>

Sent: Friday, April 18, 2008 8:01:32 PM
Subject: [TSE] Re: XML

Jim Sylva

unread,
Apr 18, 2008, 2:26:27 PM4/18/08
to sem...@googlegroups.com
Thanks. That is good to know.

Jim

Weitenberg, J.J.S.

unread,
Apr 28, 2008, 3:35:34 AM4/28/08
to sem...@googlegroups.com

________________________________

From: sem...@googlegroups.com on behalf of S.E. Mitchell
Sent: Thu 4/17/2008 3:30 AM
To: sem...@googlegroups.com

winmail.dat

Ed Ahlsen-Girard

unread,
Jun 5, 2008, 1:55:38 PM6/5/08
to sem...@googlegroups.com, cram...@charter.net
Late to the party, Steve, but XML wasn't designed for storage at all: it was conceived of as an interchange format. It's only become popular for storage now that 80 gig drives are Happy Meal toys.

 
--
 
Ed Ahlsen-Girard
Senior Network Engineer
TYBRIN Corporation
tybrin.com
850-337-2830
850-337-2885 (fax)
This e-mail and any files transmitted with it are the property of TYBRIN Corporation, are private, and are intended solely for the use of the individual or entity to which this email is addressed. If you are not one of the named recipient(s) or otherwise have reason to believe that you have received this message in error, please delete this message immediately. Any other use, retention, dissemination, forwarding, printing, or copying of this e-mail is strictly prohibited.


-----Original Message-----
From: sem...@googlegroups.com [mailto:sem...@googlegroups.com] On Behalf Of Steve Cramer

Sent: Thursday, April 17, 2008 8:59 AM
To: sem...@googlegroups.com

Heijer, Rob den

unread,
Jun 5, 2008, 7:44:02 PM6/5/08
to sem...@googlegroups.com

Right you are. My son bought half a terabyte for 80 Euros. Un-be-lie-va-ble.
But so true. Gone are the days when disk space cost real money.

cheers,
Rob.


-----Oorspronkelijk bericht-----
Van: sem...@googlegroups.com namens Ed Ahlsen-Girard
Verzonden: do 5-6-2008 19:55
Aan: sem...@googlegroups.com; cram...@charter.net
Onderwerp: [TSE] Re: XML

winmail.dat

Rens Duijsens

unread,
Jun 6, 2008, 6:36:21 AM6/6/08
to sem...@googlegroups.com
Well.....
 
I have written a Xml2Text parser in Visual Basic.
It should be possible to convert that into SAL.
However... I could use some help with that in that case.
 
Rob? Help?


Van: Heijer, Rob den
Verzonden: vr 6-6-2008 1:44
Aan: sem...@googlegroups.com
Onderwerp: RE: [TSE] Re: XML

Heijer, Rob den

unread,
Jun 6, 2008, 7:27:24 AM6/6/08
to sem...@googlegroups.com
Sounds like a doable project. Haven't seen you in a while, what.
However, I'm a bit busy at the moment, bit of a full agenda, off to Slovenia for a week as of the 16th...
So, either you send me your ideas + VB, or we start working on it at the end of the month-ish.
 
cheers,
Rob.


From: sem...@googlegroups.com [mailto:sem...@googlegroups.com] On Behalf Of Rens Duijsens
Sent: vrijdag 6 juni 2008 12:36
To: sem...@googlegroups.com
Subject: [TSE] Re: XML

knud van eeden

unread,
Jun 6, 2008, 8:36:36 AM6/6/08
to sem...@googlegroups.com
(Might) join/help/advice (if feasible/doable).
 
Thanks,
 
with friendly greetings,
Knud van Eeden

Rens Duijsens

unread,
Jun 6, 2008, 2:31:56 PM6/6/08
to sem...@googlegroups.com
I'll send both of you the documentation.
Do we continue on the mailinglist, or do wel continue in private? :-)
 


Van: knud van eeden
Verzonden: vr 6-6-2008 14:36
Aan: sem...@googlegroups.com
Onderwerp: [TSE] Re: XML

S.E. Mitchell

unread,
Jun 6, 2008, 2:41:57 PM6/6/08
to sem...@googlegroups.com
Feel free to continue on the mailing list if you like.

Heijer, Rob den

unread,
Jun 7, 2008, 4:24:19 AM6/7/08
to sem...@googlegroups.com

Crude but working:

proc main()
lReplace('\<\/.*>', '', 'xn')
BegFile()
while lFind('\<{.#}\>\c', 'x')
InsertText(Format('':32-CurrCol():' '))
endwhile
lReplace('^{ *}\<{.#}\>', '\2\1', 'gxn')
BegFile()
while lFind('^$', 'x')
DelLine()
endwhile
BegFile()
end
<F2> main()

It's all done by magic. OTOH: TSE is a powerful toy...

cheers,
Rob den Heijer


-----Oorspronkelijk bericht-----
Van: sem...@googlegroups.com namens S.E. Mitchell
Verzonden: vr 6-6-2008 20:41

winmail.dat

Rens Duijsens

unread,
Jun 7, 2008, 5:19:03 PM6/7/08
to sem...@googlegroups.com
Snap......
There goes my learning moment. :-)
 
Friendly greetings
Rens
 


Van: Heijer, Rob den
Verzonden: za 7-6-2008 10:24

Heijer, Rob den

unread,
Jun 7, 2008, 6:58:39 PM6/7/08
to sem...@googlegroups.com
OK, this time with a bit of explanation, then...
It's not the same as working on it together (BTW, we still can ;-) )
but I hope it helps.

sorry pal

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

Van: sem...@googlegroups.com namens Rens Duijsens
Verzonden: za 7-6-2008 23:19
Aan: sem...@googlegroups.com
Onderwerp: [TSE] Re: XML

Snap......
There goes my learning moment. :-)

Friendly greetings
Rens

________________________________

Van: Heijer, Rob den
Verzonden: za 7-6-2008 10:24
Aan: sem...@googlegroups.com
Onderwerp: RE: [TSE] Re: XML


Crude but working:

proc main()
// Eliminate all closing tags by replacing them with empty strings


lReplace('\<\/.*>', '', 'xn')
BegFile()

// Put all values in the same column:
// While finding a tag, place the cursor before the closing bracket ( \c )


while lFind('\<{.#}\>\c', 'x')

// Insert spaces to align the value
InsertText(Format('':32-CurrCol():' '))
endwhile
// Swap the leading spaces and the tag, at the same time removing "<" and ">"


lReplace('^{ *}\<{.#}\>', '\2\1', 'gxn')
BegFile()

// Delete remaining empty lines

winmail.dat

knud van eeden

unread,
Jun 8, 2008, 3:23:12 PM6/8/08
to sem...@googlegroups.com
Does Rob's version do what you wanted?
 
Or are you also looking for an XML parser?
Reply all
Reply to author
Forward
0 new messages