|
I've done this in both RPG and Java. I use </tag1/> for the format. My
code for parsing it looks like this:
C If MsgBody(MsgIdx) <> CurSection
C eval cmdStart=%scan('</':MsgBody(MsgIdx))
C If cmdStart=0
* spit out raw text
C Else
C eval WorkLine=MsgBody(MsgIdx)
C DoW cmdStart>0
C eval cmdEnd=%scan('/>':WorkLine)
C eval FieldName=%subst(WorkLine:cmdStart:
C (cmdEnd -
cmdStart)+2)
* do stuff based on Field Name
C eval cmdStart=%scan('</':WorkLine)
C EndDo
This is an example from the program I wrote to send order status emails.
The program reads several different source members into a couple of
arrays and copies them into the MsgBody array based on the email type I
need to send. I also have an example that works from the IFS but the
only significant difference (besides being written in free format RPG)
is it uses the IFS open and read API's instead of an array.
I also have section names in my templates for optional sections. I use
the format </@section name/> to identify those. In this case, I require
the section name to be on it's own line and start in the first character
position (I did this purely to make it easier on myself, it's good to be
the king).
Matt
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of James Rich
Sent: Wednesday, December 13, 2006 5:12 PM
To: rpg400-l
Subject: matching tags in text
I've written some code which has some bugs. I think I need to scrap the
whole thing and start over with a fresh approach. I need to replace
tags
in a string with another string. So I'm looking for ideas on the best
ways to accomplish this. Here's an example of what the original string
might look like:
This string is <tag 1>an example string</tag 1> that I made up.
My code needs to replace <tag 1> with some string (passed to it is
beginstring) and replace </tag 1> with some string (passed as
endstring).
I need to catch errors like opening tags that don't have closing tags
and
opening tags that occur before a previous opening tag's matching end
tag.
I'm almost certain this is something that lots of RPG programmers have
done before. My code sucks. How do you do it?
James Rich
It's not the software that's free; it's you.
- billyskank on Groklaw
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.