Dave,

Now I'm doing the following (though its not working. pls. let me know how to 
proceed.):-

The SimpleXPathAPI is evaluating by doing:
XalanNode* const        theContextNode =
                        theEvaluator.selectSingleNode(
                        theDOMSupport,
                        theDocument,
                        XalanDOMString(argv[2]).c_str(),
                        thePrefixResolver);
const XObjectPtr        theResult(
                                theEvaluator.evaluate(
                                theDOMSupport,
                                theContextNode,
                                XalanDOMString(argv[3]).c_str(),
                                thePrefixResolver));  
theResult->str() returns the string id('id1').

I have added the following:

string myStr;
xalanc::XalanVector<char> data1;
theResult->str().transcode(data1);
myStr.assign(data1.begin(), data1.end());

const XObjectPtr        theResult1(
                        theEvaluator.evaluate(
                        theDOMSupport,
                        theContextNode,
                        XalanDOMString(myStr.c_str()).c_str(),
                        thePrefixResolver));
Here I'm passing the context node evaluated before along with the XPath 
expression got from the last evaluation. theResult1->str() is returning blank 
string here. 

Could you please tell me the correct way to proceed ? It would be very much 
helpful if you could provide some code snippet as I want to learn Xalan 
programming fast.

Best Regards,
Indrajit 


On Mon, 12 Feb 2007 David Bertoni wrote :
>Indrajit Bhattacharya wrote:
>>Hi Dave,
>>
>>1. I'm using VC7.1.3088 (.Net framework SP1) on Windows XP Professional.
>
>Then you shouldn't have any problem building the binaries if you follow the 
>build instructions.  I use VS .Net 2003 as my primary development platform.
>
>>
>>2. Here I did not put it correctly. (pls. forgive me as I'm quite new to XML, 
>>Xalan and XPath).
>>
>>Pls. see the problem I'm into below:
>>
>>I have some XML like:
>><A>
>>      <B>
>>           <C1 id="id1">1</C1>
>>           <C2 id="id2">2</C2>
>>      </B>
>>      <D id="id('id1')">3</D>
>></A>
>>
>>When I give XPath expression like : /A/D/@id , I need to get value 1. The 
>>value 1 will be coming from the element C1 whose id is "id1".
>>Please let me know how I can do the same, and how I can get the desired value 
>>using the sample applications with Xalan.
>
>The sample XPath applications that ship with Xalan-C would need to be modified 
>to do something like this, although you could do it with a stylesheet and an 
>extension function.
>
>>
>>Currently I'm getting the string output id('id1'). In fact I need to get 
>>value 1 (this corresponds to the value of the element whose id is id1).
>
>Since you want to use an XPath expression to select an attribute with another 
>value that should also be evaluated as an XPath expression, you
>just need to add another evaluation.  It should be very straightforward to 
>modify the SimpleXPathAPI sample to do that.
>
>Dave

Reply via email to