You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
(6) |
Jul
(21) |
Aug
(40) |
Sep
(7) |
Oct
(41) |
Nov
(52) |
Dec
(19) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(49) |
Feb
(37) |
Mar
(84) |
Apr
(11) |
May
(29) |
Jun
(9) |
Jul
(19) |
Aug
(9) |
Sep
(6) |
Oct
(5) |
Nov
(15) |
Dec
(3) |
| 2008 |
Jan
(7) |
Feb
(11) |
Mar
(25) |
Apr
(50) |
May
(7) |
Jun
(8) |
Jul
(10) |
Aug
(18) |
Sep
(1) |
Oct
(15) |
Nov
(1) |
Dec
(9) |
| 2009 |
Jan
(5) |
Feb
(2) |
Mar
(3) |
Apr
(5) |
May
(10) |
Jun
(4) |
Jul
(5) |
Aug
(5) |
Sep
(7) |
Oct
(15) |
Nov
(13) |
Dec
(6) |
| 2010 |
Jan
|
Feb
(3) |
Mar
(4) |
Apr
(6) |
May
|
Jun
(4) |
Jul
(12) |
Aug
(8) |
Sep
|
Oct
(1) |
Nov
(1) |
Dec
(1) |
| 2011 |
Jan
(19) |
Feb
(39) |
Mar
(28) |
Apr
(6) |
May
(7) |
Jun
(9) |
Jul
|
Aug
(1) |
Sep
|
Oct
(8) |
Nov
(3) |
Dec
(12) |
| 2012 |
Jan
(2) |
Feb
(1) |
Mar
(3) |
Apr
(4) |
May
(4) |
Jun
(3) |
Jul
(10) |
Aug
(2) |
Sep
(13) |
Oct
(24) |
Nov
(3) |
Dec
(1) |
| 2013 |
Jan
(11) |
Feb
(5) |
Mar
(4) |
Apr
(3) |
May
(3) |
Jun
(5) |
Jul
(7) |
Aug
(16) |
Sep
|
Oct
(7) |
Nov
(11) |
Dec
|
| 2014 |
Jan
(7) |
Feb
(4) |
Mar
|
Apr
|
May
(4) |
Jun
|
Jul
|
Aug
(1) |
Sep
(3) |
Oct
|
Nov
(3) |
Dec
|
| 2015 |
Jan
|
Feb
|
Mar
(1) |
Apr
(11) |
May
(8) |
Jun
(3) |
Jul
(1) |
Aug
(3) |
Sep
(5) |
Oct
(2) |
Nov
(1) |
Dec
(1) |
| 2016 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
(3) |
May
(7) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(6) |
Nov
|
Dec
|
| 2017 |
Jan
|
Feb
|
Mar
(5) |
Apr
|
May
(2) |
Jun
|
Jul
(4) |
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
| 2018 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
|
| 2019 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <cra...@co...> - 2013-01-31 19:37:44
|
The latest version is 2.11, can u try that instead? ----- Original Message ----- From: "M Singh" <man...@ya...> To: vtd...@li... Sent: Monday, January 28, 2013 10:52:09 AM Subject: [Vtd-xml-users] UTF8 ParseException: UTF 8 encoding error Hi: I am using VTD-XML version 2.9 and am getting the following two ParseExceptions (for different xml documents) in our production logs: <exception stack trace> com . ximpleware . ParseException : UTF 8 encoding error : should never happen at com . ximpleware . VTDGen $ UTF8Reader . handleUTF8 ( VTDGen . java : 742 ) at com . ximpleware . VTDGen $ UTF8Reader . getChar ( VTDGen . java : 708 ) at com . ximpleware . VTDGen . parse ( VTDGen . java : 2781 ) ... com . ximpleware . ParseException : UTF 8 encoding error : should never happen at com . ximpleware . VTDGen $ UTF8Reader . handleUTF8 ( VTDGen . java : 750 ) at com . ximpleware . VTDGen $ UTF8Reader . getChar ( VTDGen . java : 708 ) at com . ximpleware . VTDGen . parse ( VTDGen . java : 2787 ) </exception stack trace> The documents are utf-8 encoded. If you have any pointers to how to investigate or resolve this issue, please let me know. Thanks Mans ------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. ON SALE this month only -- learn more at: http://p.sf.net/sfu/learnnow-d2d _______________________________________________ Vtd-xml-users mailing list Vtd...@li... https://lists.sourceforge.net/lists/listinfo/vtd-xml-users |
|
From: M S. <man...@ya...> - 2013-01-28 18:52:19
|
Hi: I am using VTD-XML version 2.9 and am getting the following two ParseExceptions (for different xml documents) in our production logs: <exception stack trace> com.ximpleware.ParseException: UTF 8 encoding error: should never happen at com.ximpleware.VTDGen$UTF8Reader.handleUTF8(VTDGen.java:742) at com.ximpleware.VTDGen$UTF8Reader.getChar(VTDGen.java:708) at com.ximpleware.VTDGen.parse(VTDGen.java:2781) ... com.ximpleware.ParseException: UTF 8 encoding error: should never happen at com.ximpleware.VTDGen$UTF8Reader.handleUTF8(VTDGen.java:750) at com.ximpleware.VTDGen$UTF8Reader.getChar(VTDGen.java:708) at com.ximpleware.VTDGen.parse(VTDGen.java:2787) </exception stack trace> The documents are utf-8 encoded. If you have any pointers to how to investigate or resolve this issue, please let me know. Thanks Mans |
|
From: Dmitry F. <dim...@gm...> - 2013-01-16 13:27:35
|
Hello.
This story has continuation.
As I already said, I use hybrid approach: I use DOM to modify the tree, and
use VTD for navigation. That works extremely faster than execute XPath
directly in DOM (about 5 times faster)
Of course, when tree is changed, I need to generate XML and reparse it via
VTD. And, of course, all bookmarks becomes invalid. That's OK, and I
controlled this myself: i stored some integer number (say, vtd_number),
and, when reparsing, this vtd_number is increased. Each object that
represents node has VTD's context, and a vtd_number for which this context
is valid.
Everything worked fine until I started using BookMark instead of my own
int[] context implementation.
The problem is that each BookMark has a reference to VTDNav instance. Every
time document is changed, new VTDNav is created, and new one should be
collected by GC, but, since I have many objects with BookMarks, they aren't.
Today I have spent several hours until I found memory leak. Currently I
switched back to my own int[] implementation, but, maybe you have some
suggestion how to solve it better?
Thanks.
2013/1/15 Dmitry Frank <dim...@gm...>
> Thanks, that is what I need.
>
> Unfortunately I missed this.
>
>
> 2013/1/15 <jz...@xi...>
>
> check out bookMark, which may be what u are looking for...
>>
>>
>>
>> ----- Original Message -----
>> From:
>> Dmitry Frank <dim...@gm...>
>>
>> To:
>> <vtd...@li...>
>> Cc:
>>
>> Sent:
>> Mon, 14 Jan 2013 19:39:29 +0400
>> Subject:
>> [Vtd-xml-users] Randomly save and restore VTDNav's context
>>
>>
>> Hello.
>>
>> For my app, it's very convinient to save current context of VTDNav and
>> restore it whenever I want
>>
>> But there's only two ways to save/restore context I know from the docs:
>> push()/pop(), and NodeRecorder.
>>
>> Neither of these ways are convinient for me: I need for really random
>> access. Not stack way, like push()/pop(), and no NodeRecorder way. that
>> can only iterate saved items node-by-node.
>>
>> I need to be able to get context as a byte array, and to restore it in
>> the same manner.
>>
>> So, I added the following methods to the VTDNav.java :
>>
>> /** * Return context that can be restored later by calling
>> restoreContext(). * by dfrank. */ public int[] getContext() { int[] ret =
>> new int[ stackTemp.length ]; for (int i = 0; i < nestingLevel; i++) { ret
>> [i] = context[i]; } ret[nestingLevel] = l1index; ret[nestingLevel + 1] =l2index
>> ; ret[nestingLevel + 2] = l3index; ret[nestingLevel + 3] = l2lower; ret[nestingLevel
>> + 4] = l2upper; ret[nestingLevel + 5] = l3lower; ret[nestingLevel + 6] =l3upper
>> ; if (atTerminal) ret[nestingLevel + 7] =1; else ret[nestingLevel + 7] =0
>> ; ret[nestingLevel+8] = LN; return ret; } /** * Restore context that
>> was returned by getContext(). * by dfrank. */ public booleanrestoreContext
>> (int[] saved_context) { for (int i = 0; i < nestingLevel; i++) { context[
>> i] = saved_context[i]; } l1index = saved_context[nestingLevel]; l2index =saved_context
>> [nestingLevel + 1]; l3index = saved_context[nestingLevel + 2]; l2lower =saved_context
>> [nestingLevel + 3]; l2upper = saved_context[nestingLevel + 4]; l3lower =saved_context
>> [nestingLevel + 5]; l3upper = saved_context[nestingLevel + 6];atTerminal
>> = (saved_context[nestingLevel + 7] == 1); LN = saved_context[nestingLevel
>> +8]; return true; }
>>
>> These methods work nicely, and they help me a lot to do what I need.
>>
>> So, questions:
>> Why there's no similar methods in the release of VTD-XML? Do them break
>> anything, or whatever?
>>
>>
>> --
>> Dmitry
>>
>>
>
|
|
From: Dmitry F. <dim...@gm...> - 2013-01-15 07:28:08
|
Thanks, that is what I need.
Unfortunately I missed this.
2013/1/15 <jz...@xi...>
> check out bookMark, which may be what u are looking for...
>
>
>
> ----- Original Message -----
> From:
> Dmitry Frank <dim...@gm...>
>
> To:
> <vtd...@li...>
> Cc:
>
> Sent:
> Mon, 14 Jan 2013 19:39:29 +0400
> Subject:
> [Vtd-xml-users] Randomly save and restore VTDNav's context
>
>
> Hello.
>
> For my app, it's very convinient to save current context of VTDNav and
> restore it whenever I want
>
> But there's only two ways to save/restore context I know from the docs:
> push()/pop(), and NodeRecorder.
>
> Neither of these ways are convinient for me: I need for really random
> access. Not stack way, like push()/pop(), and no NodeRecorder way. that
> can only iterate saved items node-by-node.
>
> I need to be able to get context as a byte array, and to restore it in the
> same manner.
>
> So, I added the following methods to the VTDNav.java :
>
> /** * Return context that can be restored later by calling
> restoreContext(). * by dfrank. */ public int[] getContext() { int[] ret =
> new int[ stackTemp.length ]; for (int i = 0; i < nestingLevel; i++) { ret[
> i] = context[i]; } ret[nestingLevel] = l1index; ret[nestingLevel + 1] =l2index
> ; ret[nestingLevel + 2] = l3index; ret[nestingLevel + 3] = l2lower; ret[nestingLevel
> + 4] = l2upper; ret[nestingLevel + 5] = l3lower; ret[nestingLevel + 6] =l3upper
> ; if (atTerminal) ret[nestingLevel + 7] =1; else ret[nestingLevel + 7] =0;ret
> [nestingLevel+8] = LN; return ret; } /** * Restore context that was
> returned by getContext(). * by dfrank. */ public boolean restoreContext(
> int[] saved_context) { for (int i = 0; i < nestingLevel; i++) { context[i]
> = saved_context[i]; } l1index = saved_context[nestingLevel]; l2index =saved_context
> [nestingLevel + 1]; l3index = saved_context[nestingLevel + 2]; l2lower =saved_context
> [nestingLevel + 3]; l2upper = saved_context[nestingLevel + 4]; l3lower =saved_context
> [nestingLevel + 5]; l3upper = saved_context[nestingLevel + 6]; atTerminal
> = (saved_context[nestingLevel + 7] == 1); LN = saved_context[nestingLevel+
> 8]; return true; }
>
> These methods work nicely, and they help me a lot to do what I need.
>
> So, questions:
> Why there's no similar methods in the release of VTD-XML? Do them break
> anything, or whatever?
>
>
> --
> Dmitry
>
>
|
|
From: <jz...@xi...> - 2013-01-14 21:44:10
|
check out bookMark, which may be what u are looking for...
----- Original Message -----
From: Dmitry Frank
To:
Cc:
Sent:Mon, 14 Jan 2013 19:39:29 +0400
Subject:[Vtd-xml-users] Randomly save and restore VTDNav's context
Hello.
For my app, it's very convinient to save current context of VTDNav
and restore it whenever I want.
But there's only two ways to save/restore context I know from the
docs: push()/pop(), and NodeRecorder.
Neither of these ways are convinient for me: I need for really random
access. Not stack way, like push()/pop(), and no NodeRecorder way.
that can only iterate saved items node-by-node.
I need to be able to get context as a byte array, and to restore it
in the same manner.
So, I added the following methods to the VTDNav.java [1] :
/** * Return context that can be restored later by calling
restoreContext(). * by dfrank. */ public int[] getContext() { int[]
ret = new int[ stackTemp.length ]; for (int i = 0; i
Links:
------
[1] http://VTDNav.java
|
|
From: Dmitry F. <dim...@gm...> - 2013-01-14 15:39:56
|
Hello.
For my app, it's very convinient to save current context of VTDNav and
restore it whenever I want.
But there's only two ways to save/restore context I know from the docs:
push()/pop(), and NodeRecorder.
Neither of these ways are convinient for me: I need for really random
access. Not stack way, like push()/pop(), and no NodeRecorder way. that can
only iterate saved items node-by-node.
I need to be able to get context as a byte array, and to restore it in the
same manner.
So, I added the following methods to the VTDNav.java :
/**
* Return context that can be restored later by calling restoreContext().
* by dfrank.
*/public int[] getContext() {
int[] ret = new int[ stackTemp.length ];
for (int i = 0; i < nestingLevel; i++) {
ret[i] = context[i];
}
ret[nestingLevel] = l1index;
ret[nestingLevel + 1] = l2index;
ret[nestingLevel + 2] = l3index;
ret[nestingLevel + 3] = l2lower;
ret[nestingLevel + 4] = l2upper;
ret[nestingLevel + 5] = l3lower;
ret[nestingLevel + 6] = l3upper;
if (atTerminal)
ret[nestingLevel + 7] =1;
else
ret[nestingLevel + 7] =0;
ret[nestingLevel+8] = LN;
return ret;}
/**
* Restore context that was returned by getContext().
* by dfrank.
*/public boolean restoreContext(int[] saved_context) {
for (int i = 0; i < nestingLevel; i++) {
context[i] = saved_context[i];
}
l1index = saved_context[nestingLevel];
l2index = saved_context[nestingLevel + 1];
l3index = saved_context[nestingLevel + 2];
l2lower = saved_context[nestingLevel + 3];
l2upper = saved_context[nestingLevel + 4];
l3lower = saved_context[nestingLevel + 5];
l3upper = saved_context[nestingLevel + 6];
atTerminal = (saved_context[nestingLevel + 7] == 1);
LN = saved_context[nestingLevel+8];
return true;}
These methods work nicely, and they help me a lot to do what I need.
So, questions:
Why there's no similar methods in the release of VTD-XML? Do them break
anything, or whatever?
--
Dmitry
|
|
From: Dmitry F. <dim...@gm...> - 2013-01-12 18:55:27
|
Hello. I recently started using VTD-XML, it is very fast, thank you for your job. But I faced the trouble, googled it and found this question on stackoverflow<http://goo.gl/dztid>, which explains the trouble. Could you please check it and reply (to the mailing-list or to the question on stackoverflow) Is there a better way to modify XML document? Or, after any modification, we anyway have to reparse the whole document, and get new instance of VTDNav? -- Regards, Dmitry. |
|
From: <jz...@xi...> - 2013-01-10 04:16:29
|
yes
----- Original Message -----
From: Yu Zhou
To:"jz...@xi..." , "vtd...@li..."
Cc:
Sent:Wed, 9 Jan 2013 05:42:38 -0800 (PST)
Subject:Re: [Vtd-xml-users] VTDNav.getText() issue?
In that case, shall we use
vtdNav.getTokenLength(vtdNav.getText()) [1] == 0
to replace
vtdNav.getText() [2] == -1
to determine whether we have a text value in the specific path?
Thanks for prompt response.
FROM: "jz...@xi... [3]"
TO: 'Yu Zhou' ; 'vtd...@li... [6]'
SENT: Tuesday, January 8, 2013 11:17 PM
SUBJECT: Re: [Vtd-xml-users] VTDNav.getText() [7] issue?
Yes, it is a change of behavior in the latest version, it is not
supposed to return -1, it should return a text node of zero width, you
should adjust your app accordingly...
----- Original Message -----
From: Yu Zhou
To:"vtd...@li... [9]"
Cc:
Sent:Tue, 8 Jan 2013 14:04:17 -0800 (PST)
Subject:[Vtd-xml-users] VTDNav.getText() [11] issue?
Previously, actually very old version, we use VTDNav.getText() to
determine whether we have some text value, if not we get the whole
element for further processing, e.g. 1) "" with xpath "/root/e1" will
yield "";2) "aaa" with xpath "/root/e1" will yield "aaa".
Basically, we use selecXPath(xpath) and evalXPath(), then if
VTDNav.getText() return -1, we grab the whole element; otherwise, we
use vtdNav.toNormalizedString(vtdNav.getText() to get the text value.
However, in the current version of VTD, when we use the
vtdNav.getText() on above two examples, we get number 3 for both
cases. However, we'd expect -1 for the case #1 and 3 for case #2.
Really appreciate if somebody could help promptly address this
issue.
Links:
------
[1] http://sitemail.hostway.com/http:
[2] http://sitemail.hostwaycom/http:
[3] mailto:jz...@xi...
[4] mailto:jz...@xi...
[5] mailto:j_y...@ya...
[6] mailto:vtd...@li...
[7] http://sitemail.hostway.com/http:
[8] mailto:j_y...@ya...
[9] mailto:vtd...@li...
[10] mailto:vtd...@li...
[11] http://sitemail.hostway.com/http:
|
|
From: Yu Z. <j_y...@ya...> - 2013-01-09 13:42:46
|
In that case, shall we use vtdNav.getTokenLength(vtdNav.getText()) == 0 to replace vtdNav.getText() == -1 to determine whether we have a text value in the specific path? Thanks for prompt response. ________________________________ From: "jz...@xi..." <jz...@xi...> To: 'Yu Zhou' <j_y...@ya...>; 'vtd...@li...' Sent: Tuesday, January 8, 2013 11:17 PM Subject: Re: [Vtd-xml-users] VTDNav.getText() issue? Yes, it is a change of behavior in the latest version, it is not supposed to return -1, it should return a text node of zero width, you should adjust your app accordingly... >----- Original Message ----- > >From: Yu Zhou <j_y...@ya...> > >To:"vtd...@li..." <vtd...@li...> > >Cc: > >Sent:Tue, 8 Jan 2013 14:04:17 -0800 (PST) > >Subject:[Vtd-xml-users] VTDNav.getText() issue? > > > >Previously, actually very old version, we use VTDNav.getText() to determine whether we have some text value, if not we get the whole element for further processing, e.g. 1) "<root><e1></e1></root>" with xpath "/root/e1" will yield "<e1></e1>"; >2) "<root><e1>aaa</e1></root>" with xpath "/root/e1" will yield "aaa". > > >Basically, we use selecXPath(xpath) and evalXPath(), then if VTDNav.getText() return -1, we grab the whole element; otherwise, we use vtdNav.toNormalizedString(vtdNav.getText() to get the text value. > > >However, in the current version of VTD, when we use the vtdNav.getText() on above two examples, we get number 3 for both cases. However, we'd expect -1 for the case #1 and 3 for case #2. > > >Really appreciate if somebody could help promptly address this issue. |
|
From: <jz...@xi...> - 2013-01-09 04:35:41
|
Yes, it is a change of behavior in the latest version, it is not supposed to return -1, it should return a text node of zero width, you should adjust your app accordingly... ----- Original Message ----- From: Yu Zhou To:"vtd...@li..." Cc: Sent:Tue, 8 Jan 2013 14:04:17 -0800 (PST) Subject:[Vtd-xml-users] VTDNav.getText() issue? Previously, actually very old version, we use VTDNav.getText() [1] to determine whether we have some text value, if not we get the whole element for further processing, e.g. 1) "" with xpath "/root/e1" will yield "";2) "aaa" with xpath "/root/e1" will yield "aaa". Basically, we use selecXPath(xpath) and evalXPath(), then if VTDNav.getText() [2] return -1, we grab the whole element; otherwise, we use vtdNav.toNormalizedString(vtdNav.getText() [3] to get the text value. However, in the current version of VTD, when we use the vtdNav.getText() [4] on above two examples, we get number 3 for both cases. However, we'd expect -1 for the case #1 and 3 for case #2. Really appreciate if somebody could help promptly address this issue. Links: ------ [1] http://sitemail.hostway.com/http: [2] http://sitemail.hostway.com/http: [3] http://sitemail.hostway.com/http: [4] http://sitemail.hostway.com/http: |
|
From: Yu Z. <j_y...@ya...> - 2013-01-08 22:04:25
|
Previously, actually very old version, we use VTDNav.getText() to determine whether we have some text value, if not we get the whole element for further processing, e.g. 1) "<root><e1></e1></root>" with xpath "/root/e1" will yield "<e1></e1>"; 2) "<root><e1>aaa</e1></root>" with xpath "/root/e1" will yield "aaa". Basically, we use selecXPath(xpath) and evalXPath(), then if VTDNav.getText() return -1, we grab the whole element; otherwise, we use vtdNav.toNormalizedString(vtdNav.getText() to get the text value. However, in the current version of VTD, when we use the vtdNav.getText() on above two examples, we get number 3 for both cases. However, we'd expect -1 for the case #1 and 3 for case #2. Really appreciate if somebody could help promptly address this issue. |
|
From: <jz...@xi...> - 2012-12-03 19:48:58
|
For vtd-xml, you will have to add code in lexer written in jflex and funcExpr.java, it will take a little times to get used to, but debugger will help you understand the architecture... ----- Original Message ----- From: Daniel Worthington-Bodart To: Cc: Sent:Fri, 30 Nov 2012 09:03:39 +0000 Subject:Re: [Vtd-xml-users] Custom XPath functions A few interfaces to implement maybe. Less than 100 lines of code maybe... Not having to fork the project definitely ;) On Nov 30, 2012 4:21 AM, wrote: what would be your expectation when u want a *simple* way of doing that? ----- Original Message ----- From: Daniel Worthington-Bodart To: Cc: Sent:Wed, 28 Nov 2012 17:34:08 +0000 Subject:[Vtd-xml-users] Custom XPath functions Hi there, Is there a simple way to add a custom xpath function? If not has anyone done anything similar to this? Many thanks Dan Links: ------ [1] mailto:jz...@xi... [2] mailto:da...@bo... [3] mailto:vtd...@li... |
|
From: Daniel Worthington-B. <da...@bo...> - 2012-11-30 09:03:42
|
A few interfaces to implement maybe. Less than 100 lines of code maybe... Not having to fork the project definitely ;) On Nov 30, 2012 4:21 AM, <jz...@xi...> wrote: > what would be your expectation when u want a *simple* way of doing that? > > > > ----- Original Message ----- > From: > Daniel Worthington-Bodart <da...@bo...> > > To: > <vtd...@li...> > Cc: > > Sent: > Wed, 28 Nov 2012 17:34:08 +0000 > Subject: > [Vtd-xml-users] Custom XPath functions > > > Hi there, > > Is there a simple way to add a custom xpath function? If not has anyone > done anything similar to this? > > Many thanks > > Dan > > |
|
From: <jz...@xi...> - 2012-11-30 04:21:13
|
what would be your expectation when u want a *simple* way of doing that? ----- Original Message ----- From: Daniel Worthington-Bodart To: Cc: Sent:Wed, 28 Nov 2012 17:34:08 +0000 Subject:[Vtd-xml-users] Custom XPath functions Hi there, Is there a simple way to add a custom xpath function? If not has anyone done anything similar to this? Many thanks Dan |
|
From: Daniel Worthington-B. <da...@bo...> - 2012-11-28 17:34:16
|
Hi there, Is there a simple way to add a custom xpath function? If not has anyone done anything similar to this? Many thanks Dan |
|
From: <jz...@xi...> - 2012-10-31 22:50:49
|
2.11 is as new in C# as in Java, all the listed methods are for internal uses, u should never invoke in your applications.There is no extended edition. toNode is the latest addition to support node() that onforms to xpath spec... ----- Original Message ----- From: Stephan Petzchen To: Cc: Sent:Wed, 31 Oct 2012 18:00:19 +0100 Subject:[Vtd-xml-users] Status of C# Version 2.11 Hi, I am just looking at the C# version (2.11) and it looks in parts different from the Java version 2.11 (well, beside the language issues ;-). Anyway, i.e. - the class VTDNav holds methods which are not or no longer in the Java version (printL2Buffer, printLC, swap_bytes), besides swap_bytes is of non use there anyway. - some weired looking goto statement in the toNode method (looks like failed decompile output...)- extended edition sources not available Can someone give some information here about the status of the c# version It looks a little bit staled and outdated. Thanks for your help best stephan -- Gesius GmbH Beim Strohhause 31 20097 Hamburg, Germany Tel. +49 (40) 6094673-10 Mobil +49 (172) 1977014 Fax +49 (40) 6094673-99 email: ste...@ge... [1] [2] www.gesius.de [3] gesius. engineering excellence Sitz der Gesellschaft/Registered office: Hamburg Handelsregister/Commercial register: HRB 117558 Geschäftsführung/executive board: Stephan Petzchen --- This communication contains confidential information. If you are not the intended recipient please return this email to the sender and delete it from your records. Diese Nachricht enthält vertrauliche Informationen. Sollten Sie nicht der beabsichtigte Empfänger dieser E-mail sein, senden Sie bitte diese an den Absender zurück und löschen Sie die E-mail aus Ihrem System. Links: ------ [1] mailto:ste...@ge... [2] mailto:ste...@ge... [3] http://gesius.de |
|
From: Stephan P. <ste...@ge...> - 2012-10-31 17:26:08
|
Hi, I am just looking at the C# version (2.11) and it looks in parts different from the Java version 2.11 (well, beside the language issues ;-). Anyway, i.e. - the class VTDNav holds methods which are not or no longer in the Java version (printL2Buffer, printLC, swap_bytes), besides swap_bytes is of non use there anyway. - some weired looking goto statement in the toNode method (looks like failed decompile output...) - extended edition sources not available Can someone give some information here about the status of the c# version. It looks a little bit staled and outdated. Thanks for your help best stephan -- Gesius GmbH Beim Strohhause 31 20097 Hamburg, Germany Tel. +49 (40) 6094673-10 Mobil +49 (172) 1977014 Fax +49 (40) 6094673-99 email: ste...@ge... <ste...@ge...> www.gesius.de <http://gesius.de> gesius. engineering excellence Sitz der Gesellschaft/Registered office: Hamburg Handelsregister/Commercial register: HRB 117558 Geschäftsführung/executive board: Stephan Petzchen --- This communication contains confidential information. If you are not the intended recipient please return this email to the sender and delete it from your records. Diese Nachricht enthält vertrauliche Informationen. Sollten Sie nicht der beabsichtigte Empfänger dieser E-mail sein, senden Sie bitte diese an den Absender zurück und löschen Sie die E-mail aus Ihrem System. |
|
From: <jz...@xi...> - 2012-10-30 18:47:49
|
That sounds like a good solution to me
----- Original Message -----
From: Mohit Anchlia
To:
Cc:
Sent:Sun, 28 Oct 2012 21:42:24 -0700
Subject:Re: [Vtd-xml-users] Xpath using token
I understand. I've found an alternative solution, as I walk down the
tokens in the order I preserve previous elements and use them as the
xpath when I find the text node.
On Sun, Oct 28, 2012 at 8:33 PM, wrote:
do you know that for any text node there are unlimited ways to
address it using XPath //* will definitively do, it therefore can
be computationally expensive to accomplish what u look for
----- Original Message -----
From:Mohit Anchlia
To:
Cc:
Sent:Fri, 26 Oct 2012 21:56:15 -0700
Subject:Re: [Vtd-xml-users] Xpath using token
For every text node I need to provde a complete xpath, this xpath
goes as column in the database.
On Fri, Oct 26, 2012 at 7:25 PM, wrote:
Getting the xpath representation of a node is neither easy nor
unique, why dont u need it in the first place?
----- Original Message -----
From:Mohit Anchlia
To:
Cc:
Sent:Fri, 26 Oct 2012 14:20:13 -0700
Subject:[Vtd-xml-users] Xpath using token
From previous suggestion I switched using this logic: The problem
is that I am not able to get full xpath down to the leaf. I am only
able to get 2 paths. So if I have: value
..... I am only getting c/d/value. Is there a trick I can use here
to get the entire path like a/b/c/d/value string ? Only other option I
see is to fall back to recursive method. public void
navigator(byte[] b) throws NavException, XPathParseException,
XPathEvalException, EncodingException, EOFException,
EntityException, ParseException {
VTDGen vg = new VTDGen();
vg.setDoc(b);
vg.parse(true);
log.info [8]("File found");
VTDNav vn = vg.getNav(); int idx = -1, type = -1;
StringBuilder sb = new StringBuilder(); Map mapList = new
HashMap(); for (int i = 0; i < vn.getTokenCount(); i++) {
type = vn.getTokenType(i);
// log.info [9]("Element name ==> " + vn.toString(i) + " Token
Type "
// + vn.getTokenType(i)); if (type ==
VTDNav.TOKEN_STARTING_TAG) {
log.info [10]("Element name ==> " + vn.toString(i));
sb.append(vn.toString(i) + "/");
if (vn.contains(i, "value")) {
do {
i++;
// log.info [11]("Text Element name ==> " +
vn.toString(i)
// + " Token Type " + vn.getTokenType(i));
} while (i < vn.getTokenCount()
&& (vn.getTokenType(i) != VTDNav.TOKEN_CHARACTER_DATA)
& if (i < vn.getTokenCount()
&
addInMap(sb.toString(), vn.toString(i), mapList);
log.info [13]("Path: " + sb.toString());
sb.setLength(0);
} } }
}
display(mapList); } private void display(Map mapList) {
for (String key : mapList.keySet()) {
log.info [14]("XPath => " + key + " values =>" +
mapList.get(key));
} }
Links:
------
[1] mailto:jz...@xi...
[2] mailto:moh...@gm...
[3] mailto:jz...@xi...
[4] mailto:vtd...@li...
[5] mailto:jz...@xi...
[6] mailto:moh...@gm...
[7] mailto:vtd...@li...
[8] http://log.info/
[9] http://log.info/
[10] http://log.info/
[11] http://log.info/
[12] http://log.info/
[13] http://log.info/
[14] http://log.info/
|
|
From: Mohit A. <moh...@gm...> - 2012-10-29 04:42:32
|
I understand. I've found an alternative solution, as I walk down the tokens
in the order I preserve previous elements and use them as the xpath when I
find the text node.
On Sun, Oct 28, 2012 at 8:33 PM, <jz...@xi...> wrote:
> do you know that for any text node there are unlimited ways to address it
> using XPath
> //* will definitively do, it therefore can be computationally expensive
> to accomplish what u look for
>
>
>
> ----- Original Message -----
> From:
> Mohit Anchlia <moh...@gm...>
>
> To:
> <jz...@xi...>
> Cc:
> <vtd...@li...>
> Sent:
> Fri, 26 Oct 2012 21:56:15 -0700
> Subject:
> Re: [Vtd-xml-users] Xpath using token
>
>
>
> For every text node I need to provde a complete xpath, this xpath goes as
> column in the database.
>
> On Fri, Oct 26, 2012 at 7:25 PM, <jz...@xi...> wrote:
>
>> Getting the xpath representation of a node is neither easy nor unique,
>> why dont u need it in the first place?
>>
>>
>>
>> ----- Original Message -----
>> From:
>> Mohit Anchlia <moh...@gm...>
>>
>> To:
>> <vtd...@li...>
>> Cc:
>>
>> Sent:
>> Fri, 26 Oct 2012 14:20:13 -0700
>> Subject:
>> [Vtd-xml-users] Xpath using token
>>
>>
>>
>> From previous suggestion I switched using this logic:
>>
>> The problem is that I am not able to get full xpath down to the leaf. I
>> am only able to get 2 paths. So if I have:
>>
>> <a>
>> <b>
>> <c>
>> <d>value<d>
>> .....
>>
>> I am only getting c/d/value. Is there a trick I can use here to get the
>> entire path like a/b/c/d/value string ? Only other option I see is to fall
>> back to recursive method.
>>
>>
>> public void navigator(byte[] b) throws NavException,
>> XPathParseException,
>> XPathEvalException, EncodingException, EOFException,
>> EntityException, ParseException {
>> VTDGen vg = new VTDGen();
>> vg.setDoc(b);
>> vg.parse(true);
>> log.info("File found");
>> VTDNav vn = vg.getNav();
>> int idx = -1, type = -1;
>> StringBuilder sb = new StringBuilder();
>> Map<String, ArrayList<String>> mapList = new HashMap<String,
>> ArrayList<String>>();
>> for (int i = 0; i < vn.getTokenCount(); i++) {
>> type = vn.getTokenType(i);
>> // log.info("Element name ==> " + vn.toString(i) + " Token Type "
>> // + vn.getTokenType(i));
>> if (type == VTDNav.TOKEN_STARTING_TAG) {
>> log.info("Element name ==> " + vn.toString(i));
>> sb.append(vn.toString(i) + "/");
>> if (vn.contains(i, "value")) {
>> do {
>> i++;
>> // log.info("Text Element name ==> " + vn.toString(i)
>> // + " Token Type " + vn.getTokenType(i));
>> } while (i < vn.getTokenCount()
>> && (vn.getTokenType(i) != VTDNav.TOKEN_CHARACTER_DATA)
>> && (vn.getTokenType(i) != VTDNav.TOKEN_STARTING_TAG));
>> if (i < vn.getTokenCount()
>> && vn.getTokenType(i) == VTDNav.TOKEN_CHARACTER_DATA) {
>> // log.info(" text node ==>" + vn.toString(i) + " ");
>> addInMap(sb.toString(), vn.toString(i), mapList);
>> log.info("Path: " + sb.toString());
>> sb.setLength(0);
>> }
>> }
>> }
>> }
>> display(mapList);
>> }
>> private void display(Map<String, ArrayList<String>> mapList) {
>> for (String key : mapList.keySet()) {
>> log.info("XPath => " + key + " values =>" + mapList.get(key));
>> }
>> }
>>
>>
>
|
|
From: <jz...@xi...> - 2012-10-29 03:33:58
|
do you know that for any text node there are unlimited ways to address
it using XPath//* will definitively do, it therefore can be
computationally expensive to accomplish what u look for
----- Original Message -----
From: Mohit Anchlia
To:
Cc:
Sent:Fri, 26 Oct 2012 21:56:15 -0700
Subject:Re: [Vtd-xml-users] Xpath using token
For every text node I need to provde a complete xpath, this xpath
goes as column in the database.
On Fri, Oct 26, 2012 at 7:25 PM, wrote:
Getting the xpath representation of a node is neither easy nor
unique, why dont u need it in the first place?
----- Original Message -----
From:Mohit Anchlia
To:
Cc:
Sent:Fri, 26 Oct 2012 14:20:13 -0700
Subject:[Vtd-xml-users] Xpath using token
From previous suggestion I switched using this logic: The problem
is that I am not able to get full xpath down to the leaf. I am only
able to get 2 paths. So if I have: value
..... I am only getting c/d/value. Is there a trick I can use here
to get the entire path like a/b/c/d/value string ? Only other option I
see is to fall back to recursive method. public void
navigator(byte[] b) throws NavException, XPathParseException,
XPathEvalException, EncodingException, EOFException,
EntityException, ParseException {
VTDGen vg = new VTDGen();
vg.setDoc(b);
vg.parse(true);
log.info [4]("File found");
VTDNav vn = vg.getNav(); int idx = -1, type = -1;
StringBuilder sb = new StringBuilder(); Map mapList = new
HashMap(); for (int i = 0; i < vn.getTokenCount(); i++) {
type = vn.getTokenType(i);
// log.info [5]("Element name ==> " + vn.toString(i) + " Token
Type "
// + vn.getTokenType(i)); if (type ==
VTDNav.TOKEN_STARTING_TAG) {
log.info [6]("Element name ==> " + vn.toString(i));
sb.append(vn.toString(i) + "/");
if (vn.contains(i, "value")) {
do {
i++;
// log.info [7]("Text Element name ==> " + vn.toString(i)
// + " Token Type " + vn.getTokenType(i));
} while (i < vn.getTokenCount()
&& (vn.getTokenType(i) != VTDNav.TOKEN_CHARACTER_DATA)
& if (i < vn.getTokenCount()
&
addInMap(sb.toString(), vn.toString(i), mapList);
log.info [9]("Path: " + sb.toString());
sb.setLength(0);
} } }
}
display(mapList); } private void display(Map mapList) {
for (String key : mapList.keySet()) {
log.info [10]("XPath => " + key + " values =>" +
mapList.get(key));
} }
Links:
------
[1] mailto:jz...@xi...
[2] mailto:moh...@gm...
[3] mailto:vtd...@li...
[4] http://log.info/
[5] http://log.info/
[6] http://log.info/
[7] http://log.info/
[8] http://log.info/
[9] http://log.info/
[10] http://log.info/
|
|
From: Mohit A. <moh...@gm...> - 2012-10-27 04:56:25
|
For every text node I need to provde a complete xpath, this xpath goes as
column in the database.
On Fri, Oct 26, 2012 at 7:25 PM, <jz...@xi...> wrote:
> Getting the xpath representation of a node is neither easy nor unique, why
> dont u need it in the first place?
>
>
>
> ----- Original Message -----
> From:
> Mohit Anchlia <moh...@gm...>
>
> To:
> <vtd...@li...>
> Cc:
>
> Sent:
> Fri, 26 Oct 2012 14:20:13 -0700
> Subject:
> [Vtd-xml-users] Xpath using token
>
>
>
> From previous suggestion I switched using this logic:
>
> The problem is that I am not able to get full xpath down to the leaf. I am
> only able to get 2 paths. So if I have:
>
> <a>
> <b>
> <c>
> <d>value<d>
> .....
>
> I am only getting c/d/value. Is there a trick I can use here to get the
> entire path like a/b/c/d/value string ? Only other option I see is to fall
> back to recursive method.
>
>
> public void navigator(byte[] b) throws NavException, XPathParseException,
> XPathEvalException, EncodingException, EOFException,
> EntityException, ParseException {
> VTDGen vg = new VTDGen();
> vg.setDoc(b);
> vg.parse(true);
> log.info("File found");
> VTDNav vn = vg.getNav();
> int idx = -1, type = -1;
> StringBuilder sb = new StringBuilder();
> Map<String, ArrayList<String>> mapList = new HashMap<String,
> ArrayList<String>>();
> for (int i = 0; i < vn.getTokenCount(); i++) {
> type = vn.getTokenType(i);
> // log.info("Element name ==> " + vn.toString(i) + " Token Type "
> // + vn.getTokenType(i));
> if (type == VTDNav.TOKEN_STARTING_TAG) {
> log.info("Element name ==> " + vn.toString(i));
> sb.append(vn.toString(i) + "/");
> if (vn.contains(i, "value")) {
> do {
> i++;
> // log.info("Text Element name ==> " + vn.toString(i)
> // + " Token Type " + vn.getTokenType(i));
> } while (i < vn.getTokenCount()
> && (vn.getTokenType(i) != VTDNav.TOKEN_CHARACTER_DATA)
> && (vn.getTokenType(i) != VTDNav.TOKEN_STARTING_TAG));
> if (i < vn.getTokenCount()
> && vn.getTokenType(i) == VTDNav.TOKEN_CHARACTER_DATA) {
> // log.info(" text node ==>" + vn.toString(i) + " ");
> addInMap(sb.toString(), vn.toString(i), mapList);
> log.info("Path: " + sb.toString());
> sb.setLength(0);
> }
> }
> }
> }
> display(mapList);
> }
> private void display(Map<String, ArrayList<String>> mapList) {
> for (String key : mapList.keySet()) {
> log.info("XPath => " + key + " values =>" + mapList.get(key));
> }
> }
>
>
|
|
From: <jz...@xi...> - 2012-10-27 02:25:36
|
Getting the xpath representation of a node is neither easy nor unique,
why dont u need it in the first place?
----- Original Message -----
From: Mohit Anchlia
To:
Cc:
Sent:Fri, 26 Oct 2012 14:20:13 -0700
Subject:[Vtd-xml-users] Xpath using token
From previous suggestion I switched using this logic: The problem
is that I am not able to get full xpath down to the leaf. I am only
able to get 2 paths. So if I have: value
..... I am only getting c/d/value. Is there a trick I can use here
to get the entire path like a/b/c/d/value string ? Only other option I
see is to fall back to recursive method. public void
navigator(byte[] b) throws NavException, XPathParseException,
XPathEvalException, EncodingException, EOFException,
EntityException, ParseException {
VTDGen vg = new VTDGen();
vgsetDoc(b); [1]
vg.parse(true); [2]
log.info [3]("File found");
VTDNav vn = vg.getNav(); int idx = -1, type = -1;
StringBuilder sb = new StringBuilder(); Map mapList = new
HashMap(); for (int i = 0; i < vn.getTokenCount(); i++) {
type = vn.getTokenType(i);
// log.info [4]("Element name ==> " + vn.toString(i) + " Token
Type "
// + vn.getTokenType(i)); if (type ==
VTDNav.TOKEN_STARTING_TAG) {
log.info [5]("Element name ==> " + vn.toString(i));
sb.append(vn.toString(i) + "/");
if (vn.contains(i, "value")) {
do {
i++;
// log.info [6]("Text Element name ==> " + vn.toString(i)
// + " Token Type " + vn.getTokenType(i));
} while (i < vn.getTokenCount()
&& (vn.getTokenType(i) != VTDNav.TOKEN_CHARACTER_DATA)
& if (i < vn.getTokenCount()
&
addInMap(sb.toString(), vn.toString(i), mapList);
log.info [8]("Path: " + sb.toString());
sb.setLength(0);
} } }
}
display(mapList); } private void display(Map mapList) {
for (String key : mapList.keySet()) {
log.info [9]("XPath => " + key + " values =>" +
mapList.get(key)); [10]
} }
Links:
------
[1] http://sitemail.hostway.com/http:
[2] http://sitemail.hostway.com/http:
[3] http://log.info
[4] http://log.info
[5] http://log.info
[6] http://log.info
[7] http://log.info
[8] http://log.info
[9] http://log.info
[10] http://sitemail.hostway.com/http:
|
|
From: Mohit A. <moh...@gm...> - 2012-10-26 21:20:19
|
>From previous suggestion I switched using this logic:
The problem is that I am not able to get full xpath down to the leaf. I am
only able to get 2 paths. So if I have:
<a>
<b>
<c>
<d>value<d>
.....
I am only getting c/d/value. Is there a trick I can use here to get the
entire path like a/b/c/d/value string ? Only other option I see is to fall
back to recursive method.
public void navigator(byte[] b) throws NavException, XPathParseException,
XPathEvalException, EncodingException, EOFException,
EntityException, ParseException {
VTDGen vg = new VTDGen();
vg.setDoc(b);
vg.parse(true);
log.info("File found");
VTDNav vn = vg.getNav();
int idx = -1, type = -1;
StringBuilder sb = new StringBuilder();
Map<String, ArrayList<String>> mapList = new HashMap<String,
ArrayList<String>>();
for (int i = 0; i < vn.getTokenCount(); i++) {
type = vn.getTokenType(i);
// log.info("Element name ==> " + vn.toString(i) + " Token Type "
// + vn.getTokenType(i));
if (type == VTDNav.TOKEN_STARTING_TAG) {
log.info("Element name ==> " + vn.toString(i));
sb.append(vn.toString(i) + "/");
if (vn.contains(i, "value")) {
do {
i++;
// log.info("Text Element name ==> " + vn.toString(i)
// + " Token Type " + vn.getTokenType(i));
} while (i < vn.getTokenCount()
&& (vn.getTokenType(i) != VTDNav.TOKEN_CHARACTER_DATA)
&& (vn.getTokenType(i) != VTDNav.TOKEN_STARTING_TAG));
if (i < vn.getTokenCount()
&& vn.getTokenType(i) == VTDNav.TOKEN_CHARACTER_DATA) {
// log.info(" text node ==>" + vn.toString(i) + " ");
addInMap(sb.toString(), vn.toString(i), mapList);
log.info("Path: " + sb.toString());
sb.setLength(0);
}
}
}
}
display(mapList);
}
private void display(Map<String, ArrayList<String>> mapList) {
for (String key : mapList.keySet()) {
log.info("XPath => " + key + " values =>" + mapList.get(key));
}
}
|
|
From: Rubén A. <mae...@gm...> - 2012-10-26 19:06:51
|
Hi Mohit,
Don't know any lib but, I use this function to generate the JSON string:
public void buildJSON(VTDNav nav, StringBuilder sb) throws Exception{
sb.append("{\"name\":\"") // the xml element name
.append(nav.toRawString(nav.getCurrentIndex()));
if (nav.getText() != -1)
sb.append("\",\"text\":\"")
.append(escapeJSONString(nav.toRawString(nav.getText())));
sb.append("\",\"attr\":{");
for(int i=1; i<=nav.getAttrCount(); i++){
if (i>1) sb.append(",");
sb.append("\""+nav.toRawString(nav.getCurrentIndex()+i*2-1)+"\"")
.append(":\""+nav.toRawString(nav.getCurrentIndex()+i*2)+"\"");
}
sb.append("},\"children\":[");
if (nav.toElement(VTDNav.FIRST_CHILD)){
buildJSON(nav, sb);
while(nav.toElement(VTDNav.NEXT_SIBLING)){
sb.append(",");
buildJSON(nav, sb);
}
nav.toElement(VTDNav.PARENT);
}
sb.append("]}");
}
nav = gen.getNav();
nav.toElement(VTDNav.ROOT);
StringBuilder sb = new StringBuilder();
buildJSON(nav, sb);
Ruben
2012/10/26 Mohit Anchlia <moh...@gm...>
> I have a need to convert XML to JSON. I prefer to use vtd for parsing do
> you know of any lib that can make use of vtd to generate JSON?
>
> ------------------------------------------------------------------------------
> The Windows 8 Center
> In partnership with Sourceforge
> Your idea - your app - 30 days. Get started!
> http://windows8center.sourceforge.net/
> what-html-developers-need-to-know-about-coding-windows-8-metro-style-apps/
> _______________________________________________
> Vtd-xml-users mailing list
> Vtd...@li...
> https://lists.sourceforge.net/lists/listinfo/vtd-xml-users
>
>
|
|
From: Mohit A. <moh...@gm...> - 2012-10-26 17:31:48
|
Thanks I'll try this option.
On Mon, Oct 15, 2012 at 12:57 PM, <jz...@xi...> wrote:
> I like Ruben's second way better than first, because it is faster
>
>
>
> ----- Original Message -----
> From:
> Rubén Akagi <mae...@gm...>
>
> To:
> "Mohit Anchlia" <moh...@gm...>
> Cc:
> <vtd...@li...>
> Sent:
> Mon, 15 Oct 2012 01:08:42 -0300
> Subject:
> Re: [Vtd-xml-users] Recursively parsing xml
>
>
>
> Hi, this is what I use to do (considering only the element nodes):
>
> public void recursive(VTDNav nav) throws NavException{
> do{
> if (nav.toElement(VTDNav.FIRST_CHILD)){
> recursive(nav);
> nav.toElement(VTDNav.PARENT);
> }
> }while(nav.toElement(VTDNav.NEXT_SIBLING));
> }
> nav.toElement(VTDNav.ROOT);
> recursive(nav);
>
>
> This is another way. It's now a recursive function but it walks the same
> nodes at the same order:
>
> for(int i=0; i<naviagtor.getTokenCount(); i++){
> int type = navigator.getTokenType(i);
> if (type == VTDNav.TOKEN_STARTING_TAG){
> //some code
> }
> }
>
>
> Ruben.
>
> 2012/10/14 Mohit Anchlia <moh...@gm...>
>
>> What's the most effiecient way to walk the entire node recursively
>> using vtd-xml? I have tried various options using bookmark but I am not
>> sure if that's the best way. Could someone suggest?
>>
>> ------------------------------------------------------------------------------
>> Don't let slow site performance ruin your business. Deploy New Relic APM
>> Deploy New Relic app performance management and know exactly
>> what is happening inside your Ruby, Python, PHP, Java, and .NET app
>> Try New Relic at no cost today and get our sweet Data Nerd shirt too!
>> http://p.sf.net/sfu/newrelic-dev2dev
>> _______________________________________________
>> Vtd-xml-users mailing list
>> Vtd...@li... <Vtd...@li...>
>> https://lists.sourceforge.net/lists/listinfo/vtd-xml-users
>>
>>
>
|