Hi Daniel,

well, comparing the documentation of both calls
(I've actually done so before asking) doesn't make
that different behaviour *that* obvious.

================================================================
void xmlNodeSetContent (xmlNodePtr cur, const xmlChar * content)

Replace the content of a node.
cur:    the node being modified
content:        the new value of the content
================================================================
================================================================
void xmlNodeAddContent (xmlNodePtr cur,const xmlChar * content)

Append the extra substring to the node content.
cur:    the node being modified
content:        extra content
================================================================

However, a statement of you that both calls behave as intended
is abolutely adequate (and appreciated) for my issue, I'd have
to adjust the application, then.

So, if I got this right, that would mean to
- mandatory pass user input through xmlEncodeEntitiesReentrant()
  (resp. xmlEncodeSpecialChars()) before calling
  xmlNodeSetContent()

- mandatory NOT do so before calling xmlNodeAddContent()
?


Thanks & Ciao, Markus



> -----Ursprüngliche Nachricht-----
> Von: Daniel Veillard [mailto:[EMAIL PROTECTED]
> Gesendet: Mittwoch, 25. Oktober 2006 13:23
> An: Keim, Markus
> Cc: [email protected]
> Betreff: Re: [xml] Behaviour of xmlNodeAddContent() vs.
> xmlNodeSetContent()
> 
> 
> On Wed, Oct 25, 2006 at 11:33:39AM +0200, Keim, Markus wrote:
> > So, the question: Am I simply wrong in using these calls,
> > or is it really an issue within libxml2?
> 
>   Well I think you're wrong in your expectation that both calls will
> work the same way. xmlNodeAddContent really just does a concatenation
> at the string level as its documenation implies
> 
>    "Append the extra substring to the node content."
> 
> while xmlNodeSetContent is more complex trying to process embbeded
> entities references.
> 
>   Trying to change their behaviour sounds dangerous to me.
> 
> Daniel
> 
> -- 
> Red Hat Virtualization group http://redhat.com/virtualization/
> Daniel Veillard      | virtualization library  http://libvirt.org/
> [EMAIL PROTECTED]  | libxml GNOME XML XSLT toolkit  
http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to