Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^4: parsing XML fragments (xml log files) with... a regex

by tye (Cardinal)
on Mar 18, 2011 at 18:11 UTC ( #894052=note: print w/ replies, xml ) Need Help??


in reply to Re^3: parsing XML fragments (xml log files) with... a regex
in thread parsing XML fragments (xml log files) with XML::Parser

It parses numerical entities. Decoding them wasn't required and would only require one regex be added. It handles namespace prefixes exactly as I wanted it to (they're included in the tag name). It is trivial to make it handle them differently (which is the point). I won't go into "validation" here, it being a subject worthy of a lengthy write-up.

A pre/post processor could fix this...

Wow. You are really stuck in thinking in terms of an XML-parsing module. There is no need to do anything in a pre-/post-processor -- which is part of the whole point of the exercise.

For example, supporting comments is 2 minutes' work and easily fits into the existing structure. The few items that rise to the level of being interesting to implement are the things that I've never actually seen used in any XML. So it shouldn't be surprising that I didn't bother to implement them in the code that implemented just what I needed for one project.

- tye        


Comment on Re^4: parsing XML fragments (xml log files) with... a regex
Re^5: parsing XML fragments (xml log files) with... a regex
by ikegami (Pope) on Mar 18, 2011 at 19:37 UTC

    It handles namespace prefixes exactly as I wanted it to

    So? All I did was identify the features others might have to add to suit their needs.

    It would be totally useless to me, for example, since the prefix isn't uniform across the documents I deal with. In fact, I've never encountered a situation where it was better to keep the prefixes.

    For example, supporting comments is 2 minutes' work

    I'm well aware that the changes are easy.

    There is no need to do anything in a pre-/post-processor

    Duh. There are many ways of changing it. I just suggested one.

    So it shouldn't be surprising that I didn't bother to implement them in the code that implemented just what I needed for one project.

    It's not. Why are you so defensive when I tell other people what they might need to adjust to suit their needs?

      Why are you so defensive when I reply to your reply? I point out things that you didn't point out and that your response actually points against and you feel the need to reply with "Duh! I knew that" and to call me defensive.

      But you also didn't comment on the main point of my reply: that you seem to have missed the main point of my original posting. Doing pre-/post-processing is mostly counter to the whole point of what I was providing a demonstration of. Restricting yourself to solutions that don't touch the code is perfectly opposed to the purpose of code that was offered up as "here is code you can easily change". It isn't just "one way to fix it", it is closer to a misuse of the example.

      So? All I did was identify the features others might have to add to suit their needs.

      Yes, and that in itself is actually going against the point of what I wrote. I wasn't providing a subroutine for people to just use. I was providing an example of code that somebody could similarly create to meet their own needs or that somebody might choose to customize to meet their needs.

      If the prospective consumer of this example code is unable to determine on their own what the code handles, then they should not be trying to use the code.

      You replied exactly like one would reply to "Here is a black box that claims to parse XML but only partially". Treating it like a black box is counter to the whole purpose and hints that I failed at conveying the point to you and thus likely to others and so some clarifications were in order.

      Pointing out how the code can be easily modified was not being defensive; it was trying to get back to / reinforce the original point.

      - tye        

        Yes, and that in itself is actually going against the point of what I wrote

        You gave code that "somebody might choose to customize to meet their needs." I really don't care if telling them what they may need to customise goes against some point you were trying to make.

        But you also didn't comment on the main point of my reply

        That sometimes, the simplest approach is to role our your own? I have no comment to make about that.

        Treating it like a black box is counter to the whole purpose and hints that I failed at conveying the point to you and thus likely to others and so some clarifications were in order.

        Granted.

        If the prospective consumer of this example code is unable to determine on their own what the code handles, then they should not be trying to use the code.

        Perhaps. I'll have to think about that.

        Yes, and that in itself is actually going against the point of what I wrote

        You gave code that "somebody might choose to customize to meet their needs." I really don't care if telling them what they may need to customise goes against some point you were trying to make.

        But you also didn't comment on the main point of my reply

        That sometimes, the simplest approach is to role our your own? I have no comment to make about that.

        Treating it like a black box is counter to the whole purpose and hints that I failed at conveying the point to you and thus likely to others and so some clarifications were in order.

        Granted.

        (Upd: I believe the post-processor mention started in the belief that you might have had more that wasn't shown. As for the pre-processor, that's probably the easiest way to handle the character encoding. )

        If the prospective consumer of this example code is unable to determine on their own what the code handles, then they should not be trying to use the code.

        Perhaps. I'll have to think about that.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://894052]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (9)
As of 2014-10-02 12:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    What is your favourite meta-syntactic variable name?














    Results (56 votes), past polls