Hi All,
Background
- We are developing a generic cross reference task for a middleware application.
- We will be processing multiple XML formats and the plan is to have a single
instance of the new cross reference task.
- We plan on configuring XPATH rules to extract a value (extraction is
processed by another task and is complete)
- After obtaining the value from the XML, we will do a cross reference look-up
via a database and then look to repopulate the new value back in the msg via
the original XPATH rule,
The issue we are having is around the re-insertion of the value.
Approach that we are using:
1) XercesLiaisonParser to parse message
2) XPathEvaluator to identify a particular node
3) XalanNode::setNodeValue to modify the value
But we are getting 'Unknown exception' when i try to do
XalanNode::setNodeValue. Any pointers to resolve it ?
Following is code snippet but it is failing with the UNKNOWN EXCEPTION
Any clue how to resolve it and also an alternative approach to achieve the
requirement !!
try{
// We'll use these to parse the XML file.
XercesDOMSupport theDOMSupport;
XercesParserLiaison theLiaison(theDOMSupport);
// Create an input source...
const MemBufInputSource theInputSource( reinterpret_cast<const
XMLByte*>(message.c_str()),
XalanDOMString::length(message.c_str()),
"SourceXML",
false );
// Parse the XML Stream
XalanDocument* const theDocument =
theLiaison.parseXMLStream(theInputSource);
XPathEvaluator theEvaluator;
XalanNode* const theContextNode = theDocument->getDocumentElement();
//Retrieve the XalanNode for the compiled XPath
XalanNode* pXalanNode, *pConstNode = NULL;
pConstNode = theEvaluator.selectSingleNode (theDOMSupport,
theContextNode,
*m_compiledXPATH);
XalanDOMString xalanDOMString("NewValue");
pConstNode->setNodeValue(xalanDOMString); // UNKNOWN EXCEPTION BEING
THROWN
}
catch(const XalanDOMException& xde)
{
}
catch(const DOMException& de)
{
}
catch (...) // UNKNOWN EXCEPTION BEING CAUGHT HERE
{
}
Thanks for helping !!
Vikram
**************** CAUTION - Disclaimer *****************
This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely
for the use of the addressee(s). If you are not the intended recipient, please
notify the sender by e-mail and delete the original message. Further, you are
not to copy, disclose, or distribute this e-mail or its contents to any other
person and any such actions are unlawful. This e-mail may contain viruses.
Infosys has taken every reasonable precaution to minimize this risk, but is not
liable for any damage you may sustain as a result of any virus in this e-mail.
You should carry out your own virus checks before opening the e-mail or
attachment. Infosys reserves the right to monitor and review the content of all
messages sent to or from this e-mail address. Messages sent to or from this
e-mail address may be stored on the Infosys e-mail system.
***INFOSYS******** End of Disclaimer ********INFOSYS***