Re: [xml] libXML2
- From: "Deepak Venkataraman" <deepakv hotmail com>
- To: elvstone gmail com
- Cc: xml gnome org
- Subject: Re: [xml] libXML2
- Date: Sat, 17 Sep 2005 00:19:11 -0500
The last problem is fixed by doing:
void copy_by_reference(char **s)
{
*s = str;
}
void main(int a, char **v)
{
char *t;
copy_by_reference(&t);
printf("%s\n",t);
return(0);
}
should print "hello world" on stdout.
i was initially doing:
void copy_by_reference(char *s)
{
s = str;
}
void main(int a, char **v)
{
char *t;
copy_by_reference(t);
printf("%s\n",t);
return(0);
}
and had to do a strcpy(s, str) in copy_by_reference)
From: Aron Stansvik <elvstone gmail com>
Reply-To: elvstone gmail com
To: Deepak Venkataraman <deepakv hotmail com>
CC: xml gnome org
Subject: Re: [xml] libXML2
Date: Sat, 17 Sep 2005 06:47:49 +0200
2005/9/17, Deepak Venkataraman <deepakv hotmail com>:
> I am using libXML2 (2.6.x) and have a few questions:
It's always best to mention exactly what version you are using, since
even minor releases can differ quite a lot.
> - LIBXML_TEST_VERSION: can this exit the application or does it simply
print
> a warning?
It will never exit the application. I think it prints a fatal error
message if major versions differ, and a warning if the minor versions
differ. Someone correct me if I'm wrong.
>
> - xmlCleanupParser(); may this be called only once from within an
> application or can it be called within threads as well? No, let me
rephrase:
> is this thread-safe?
http://xmlsoft.org/html/libxml-parser.html#xmlCleanupParser
"Calling this function should not prevent reusing the library but one
should call xmlCleanupParser() only when the process has finished
using the library or XML document built with it."
Note "process", not "thread". Also see http://xmlsoft.org/threads.html.
>
> - I try to assign a string like:
> mdolinktarget = (char *)xmlNodeListGetString(doc,
> tmp_node->xmlChildrenNode, 1);
> and pass it as a reference to main but when I print it the string is
> empty, I have to instead do:
> strcpy(mdolinktarget,(char *)xmlNodeListGetString(doc,
> tmp_node->xmlChildrenNode, 1));
> to make it work. Do you know why?
There's no way for us to know why your code won't work as your expect
unless you give us a more complete example. And what do you mean "pass
as a reference to main"? That doesn't make sense and it makes me think
you're doing something wrong that is not related to libxml2. Are you
doing this in C or C++?
> The problem is the first way we have now way knowing how long these
buffers
> need to be;
xmlNodeListGetString() returns a pointer to the allocated string, as
stated in the documentation:
http://xmlsoft.org/html/libxml-tree.html#xmlNodeListGetString. What
more do you need?
Get back with a minimal example of the problems you're having, and I
might be able to help you more :)
Best regards,
Aron
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]