On 10/12/2012 08:46 AM, Alexei Golovko wrote:
Yes, they are not legal XML, they are parts, corresponding to user's selection.
I need such things:
1) to get a length of fragment (to save position of fragment as sum of lengths of all preceding fragments) 2) to compare fragments (hence attributes shoud be ordered some way, whitespaces inside tag normalised etc.)
3) to check that string forms valid fragment (no "partial-tag />")
Additional bonus is to be sure, that one fragment may be safely (w.r.t. fixed XML schema) replaced by another (suggested by application user). Currently, I treat length of tag (open: <em attr1="value1" ... > — or closed: </em>) as 1 (because tag is atomar for selecting and because it look more natural where I use DOM api).

OK, then I'd expect to parse fragments into a simple tree datatype.

Maybe if you point us to an example of your parsing code, I can give some advice on making it faster. (Linear-time/space parsing of strings in pure Ur code should be pretty easy, if you use the right standard library functions.)

  12.10.2012, 03:09, "Adam Chlipala" <[email protected]>:
On 10/10/2012 01:22 PM, Alexei Golovko wrote:
What is the best way to parse xml on the client side? More precisely, I need to process not only full xml data, but also the fragments like /"bla-bla</em> baz-baz-<strong>baz</strong>"/ with bounds in the text nodes (that is not inside tag as /"end-of-tag-name> text"/). I have some (quick and dirty) parsec-like combinators, but they are buggy and too slow.

So you want fragments that are not legal XML on their own? Well, which type do you want to target with your translation?
Thanks.
Fragments are not html, so the first does not solve problem.
The second, I thought, doesn't work on client-side, does it?

Right; the feed library is server-side.

Two bits of related library code:
- A basic & configurable HTML parser (only does legal fragments, though): http://hg.impredicative.com/meta/file/7530b2b54353/html.urs
- The XML feed processing library: http://hg.impredicative.com/feed
_______________________________________________
Ur mailing list
[email protected]
http://www.impredicative.com/cgi-bin/mailman/listinfo/ur

Reply via email to