Hello,
thanks for your answer David,
How can I return a node set ? for example this node set
"<example>example1<example>", I saw the file FunctionDocument.cpp and I
didn't get what I want from it.
thanks a lot,
2008/8/28 David Bertoni <[EMAIL PROTECTED]>
> anas.eh wrote:
>
>> Hi,
>>
>> My problem is :
>>
>> In a XSL file I make a call to an external function :
>>
>> <xsl:value-of select="external:ListToXML()"/>
>>
>> The function ListToXML() is like thatt :
>>
>> XObjectPtr NGATranslatorXSLFunctionListToXML::execute(
>> XPathExecutionContext& io__executionContext,
>> XalanNode* io__context,
>> const XObjectArgVectorType& i__args,
>> const LocatorType* i__locator) const
>> {
>> string l__xml;
>> l__xml = "<exemple>exemple1</exemple><exemple>exemple2</exemple>";
>> return io__executionContext.getXObjectFactory().createString(
>> XalanDOMString(
>> l__xml.c_str())
>> );
>> }
>>
>>
>> What I get in output (after transformation) is a XML part like that :
>>
>>
>> <exemple>exemple1</exemple><exemple>exemple2</exemple>
>>
> You asked for a string, which, when copied to the source tree, creates a
> text node. During serialization, markup characters are escaped so the
> result is well-formed.
>
>
>> How can I get a correct XML part ?
>>
> You want to return either a result tree fragment or a node set. It's
> simpler to return a node set, although it's not the best choice if your
> stylesheet will be generating lots of these node sets.
>
> Take a look at the implementation of the document() function, which is
> implemented in src/xalanc/XSLT/FunctionDocument.cpp for more details.
>
> Also, please remember that functions in XPath anbd XSLT must be free of
> side-effects. That means that no matter how many times your function is
> called, if it's called with the same arguments, it must produce the same
> result.
>
> Dave
>
--
Anas EL HAJJAJI
Ingénieur Étude et Développement
Sagem Sécurité Maroc
[ENSIAS'08]