|
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.