You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-users@xerces.apache.org by Ben Griffin <be...@redsnapper.net> on 2012/11/01 13:12:07 UTC

Re: Newbie - Parsing XML String?

There is an example that does that.
The code I use is something like this:

//Load a DOMDocument from a utf-8 string
const std::string xmlfile; 		//The source UTF-8 encoded xml file
DOMDocument* rslt = NULL; 	//The resulting DOMDocument
string err_message;			//For parse errors
if ( ! xmlfile.empty() ) {
	const XMLCh xml_str[] = { chLatin_X, chLatin_M, chLatin_L, chNull };
	AutoRelease<DOMLSInput> input(((DOMImplementationLS*)impl)->createLSInput()); //impl is from a getDOMImplementation
	XMLByte* xmlraw = (XMLByte*)(xmlfile.c_str());
	MemBufInputSource* mbis = new MemBufInputSource(xmlraw,xmlfile.size(), xml_str);
	mbis->setCopyBufToStream(false);
	input->setByteStream(mbis);
	input->setEncoding(XMLUni::fgUTF8EncodingString);
	try {
		rslt = parser->parse(input); //parser is a DOMLSParser*
	}
	catch (DOMLSException e) {
		Manager::transcode(e.getMessage(),err_message);		//use your preferred transcoder here
	}
	catch (DOMException e) {
		Manager::transcode(e.getMessage(),err_message);		//use your preferred transcoder here.
	}
	catch ( ... ) {
		err_message = "Some load error occured with an xml file.";
	}
	delete mbis; mbis=NULL;
}



> 
> Hi Folks:
> 
>   XercesDOMParser's parse() seems to require a file name for an argument.  
> 
>   I want to parse XML extracted from in an SQL blob.  I'm currently
> extracting the XML into an std::string.  I can convert it to an std::wstring
> or feed it to a stream.
> 
>   How do I parse XML that's in memory, and not in a file?
> 
>      Thanks
>      Larry
> 
> 
> -- 
> View this message in context: http://old.nabble.com/Newbie---Parsing-XML-String--tp34626020p34626020.html
> Sent from the Xerces - C - Users mailing list archive at Nabble.com.
> 


Re: Newbie - Parsing XML String?

Posted by Larry Lindstrom <la...@hotmail.com>.
Thanks Alberto and Ben:

   That works.  

          Larry

-- 
View this message in context: http://old.nabble.com/Newbie---Parsing-XML-String--tp34626020p34631407.html
Sent from the Xerces - C - Users mailing list archive at Nabble.com.