CGI/Perl Guide | Learning Center | Forums | Advertise | Login
Site Search: in

  Main Index MAIN
INDEX
Search Posts SEARCH
POSTS
Who's Online WHO'S
ONLINE
Log in LOG
IN

Home: Perl Programming Help: Beginner:
PERL--REGEX

 



cognizant
Novice

May 19, 2016, 7:18 AM

Post #1 of 2 (1067 views)
PERL--REGEX Can't Post

I am working on the following xml sample.

Input:
<one>line 1one</one>
<one>line 2two
<two>child 2one</two>
<three>child 2two</three>

</one>
<one>line 3three</one>



I do understand that using a module to parse an XML file is recommended.

I am interested to see if a regex in PERL can be developed to produce the following output



Output:

<one>line 3three</one>



Summary:

Output is produced by taking the following conditions into account.

If the value(attribute) between the elements contain, "one", remove those elements.
If the value(attribute) "one", exists, in the child elements of a parent element, remove all the child elements along with the parent element.

In this example:
parent element---->one
child element---->two
child element---->three



Can a regex be created to generate the required output !


Laurent_R
Veteran / Moderator

May 19, 2016, 11:19 PM

Post #2 of 2 (1059 views)
Re: [cognizant] PERL--REGEX [In reply to] Can't Post

Nope. Even for simpler cases, a regex is simply not the right tool. Here, it is a typical example where you just can't do it with a regex. Well, you could possibly build a complicated regex that would work for that very specific case, but you would have to make many assumptions about the exact format, so that the regex would break if anything is slightly different or for more general case.

Don't try to do that, you'd be bound to failure.

Even using several regexes would not save your day, or you would end up building yourself a clunky and unpractical mini-parser, use a parsing module for that.

 
 


Search for (options) Powered by Gossamer Forum v.1.2.0

Web Applications & Managed Hosting Powered by Gossamer Threads
Visit our Mailing List Archives