本文整理汇总了C++中XercesDOMParser::getDocument方法的典型用法代码示例。如果您正苦于以下问题:C++ XercesDOMParser::getDocument方法的具体用法?C++ XercesDOMParser::getDocument怎么用?C++ XercesDOMParser::getDocument使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XercesDOMParser
的用法示例。
在下文中一共展示了XercesDOMParser::getDocument方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: loadData
void ItemDataLoader::loadData(string filename)
{
XMLPlatformUtils::Initialize();
XmlHelper::initializeTranscoder();
XercesDOMParser* parser = new XercesDOMParser();
parser->setValidationScheme(XercesDOMParser::Val_Always); // optional.
parser->setDoNamespaces(true); // optional
XmlPtr res = XmlResourceManager::getSingleton().create(filename,
Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
res->parseBy(parser);
DOMDocument* doc = parser->getDocument();
DOMElement* dataDocumentContent = XmlHelper::getChildNamed(
doc->getDocumentElement(), "Inhalt");
initializeWeapons(XmlHelper::getChildNamed(dataDocumentContent, "Waffen"));
initializeArmors(XmlHelper::getChildNamed(dataDocumentContent, "Rüstungen"));
initializeItems(XmlHelper::getChildNamed(dataDocumentContent, "Gegenstände"));
doc->release();
res.setNull();
XmlResourceManager::getSingleton().remove(filename);
XMLPlatformUtils::Terminate();
}
示例2: HandlerBase
map<string, DatasetSpecification> Specifications::readDatasetIndex(string str){
map<string, DatasetSpecification> result;
XERCES_CPP_NAMESPACE_USE
XMLPlatformUtils::Initialize();
XercesDOMParser parser;
parser.setValidationScheme(XercesDOMParser::Val_Always);
HandlerBase errHandler;// = (ErrorHandler*) new HandlerBase();
parser.setErrorHandler(&errHandler);
parser.parse(str.c_str());
DOMDocument * doc = parser.getDocument();
DOMElement* elementRoot = doc->getDocumentElement();
DOMNodeList *entries =
elementRoot->getElementsByTagName(XMLString::transcode("dataset"));
cout << "Databases in index:\n";
for(size_t i = 0; i < entries->getLength(); ++i){
DOMNode *current = entries->item(i);
DatasetSpecification dss;
dss.name = XMLString::transcode(current->getAttributes()->
getNamedItem(XMLString::transcode("name"))->
getNodeValue());
dss.root = XMLString::transcode(current->getAttributes()->
getNamedItem(XMLString::transcode("root"))->
getNodeValue());
cout << " name: " << dss.name << " root: " << dss.root << endl;
DOMNodeList *categories = current->getChildNodes();
for(size_t j = 0; j < categories->getLength(); ++j)
if((string) XMLString::transcode(categories->item(j)->getNodeName()) ==
"category")
dss.categories.push_back(XMLString::transcode(categories->item(j)->getTextContent()));
result[dss.name] = dss;
}
return result;
}
示例3: readFile
void Parameters::readFile(string str){
file = str;
XMLPlatformUtils::Initialize();
XercesDOMParser parser;
parser.setValidationScheme(XercesDOMParser::Val_Always);
HandlerBase errHandler;// = (ErrorHandler*) new HandlerBase();
parser.setErrorHandler(&errHandler);
parser.parse(str.c_str());
DOMDocument * doc = parser.getDocument();
DOMElement* elementRoot = doc->getDocumentElement();
// Extract floats
DOMElement* floatRoot = (DOMElement *)
elementRoot->getElementsByTagName(XMLString::transcode("real"))->item(0);
DOMElement* child = floatRoot->getFirstElementChild();
do{
saveReal(XMLString::transcode(child->getNodeName()),
atof(XMLString::transcode(child->getTextContent())));
child = child->getNextElementSibling();
}while(child != NULL);
// Extract integers
DOMElement* intRoot = (DOMElement *)
elementRoot->getElementsByTagName(XMLString::transcode("integer"))->item(0);
child = intRoot->getFirstElementChild();
do{
saveInteger(
XMLString::transcode(child->getNodeName()),
atoi(XMLString::transcode(child->getTextContent())));
child = child->getNextElementSibling();
}while(child != NULL);
}
示例4:
bool SYSTEM::CXMLConfiguration::Open(std::string xmlpath)
{
// ÅäÖýâÎö¹æÔò
static const XMLCh gLS[] = { chLatin_L, chLatin_S, chNull };
impl = DOMImplementationRegistry::getDOMImplementation(gLS);
if(!impl)
return false;
// throw CException(GET_TEXT(ERR_XML_DOM_IMPLEMENTATION));
if(parser == NULL)
parser = new XercesDOMParser;
XercesDOMParser* xmlparser = (XercesDOMParser*)parser;
xmlparser->setValidationScheme(XercesDOMParser::Val_Never);
xmlparser->setDoNamespaces(false);
xmlparser->setDoSchema(false);
xmlparser->setValidationSchemaFullChecking(false);
xmlparser->setCreateEntityReferenceNodes(false);
xmlparser->setIncludeIgnorableWhitespace(false);
xmlparser->resetDocumentPool(); //ÖØÖÃÎĵµ»º³å³Ø
xmlparser->parse(xmlpath.c_str());
doc = xmlparser->getDocument();
if(doc)
itemElement = ((XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument*)doc)->getDocumentElement(); //¸³Óè¸ù½Úµã
else
return false;
//throw CException(boost::str(boost::format(GET_TEXT(ERR_PARSE_CONFIG_FILE)) % xmlpath));
xmlFile = xmlpath;
return true;
}
示例5: input
void SYSTEM::CXMLConfiguration::Parse(std::string xmlcontent)
{
// ÅäÖýâÎö¹æÔò
static const XMLCh gLS[] = { chLatin_L, chLatin_S, chNull };
impl = DOMImplementationRegistry::getDOMImplementation(gLS);
if(!impl)
return;
// throw CException(GET_TEXT(ERR_XML_DOM_IMPLEMENTATION));
if(parser == NULL)
parser = new XercesDOMParser;
XercesDOMParser* xmlparser = (XercesDOMParser*)parser;
xmlparser->setValidationScheme(XercesDOMParser::Val_Never);
xmlparser->setLoadExternalDTD(false);
xmlparser->setDoNamespaces(false);
xmlparser->setDoSchema(false);
xmlparser->setValidationSchemaFullChecking(false);
xmlparser->setCreateEntityReferenceNodes(false);
xmlparser->setIncludeIgnorableWhitespace(false);
xmlparser->resetDocumentPool(); //ÖØÖÃÎĵµ»º³å³Ø
MemBufInputSource input((XMLByte*) xmlcontent.c_str(), xmlcontent.size(), "memory");
xmlparser->parse(input);
doc = xmlparser->getDocument();
if(doc)
itemElement = ((XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument*)doc)->getDocumentElement(); //¸³Óè¸ù½Úµã
else
return;
// throw CException(boost::str(boost::format(GET_TEXT(ERR_PARSE_CONFIG_FILE)) % xmlcontent));
}
示例6: readGenerations
void Generation::readGenerations(const string &file,
vector<GenerationPtr> &generations) {
XMLPlatformUtils::Initialize();
XercesDOMParser parser;
GenerationErrorHandler handler;
parser.setErrorHandler(&handler);
parser.setEntityResolver(&handler);
parser.parse(file.c_str());
DOMDocument *doc = parser.getDocument();
DOMElement *root = doc->getDocumentElement();
XMLCh tempStr[12];
XMLString::transcode("generation", tempStr, 11);
DOMNodeList *list = root->getElementsByTagName(tempStr);
int length = list->getLength();
for (int i = 0; i < length; ++i) {
DOMElement *item = (DOMElement *)list->item(i);
GenerationPtr generation(new Generation());
generation->m_impl->m_owner = generation.get();
generation->m_impl->getGeneration(item);
generation->m_impl->m_idx = i;
generations.push_back(generation);
}
}
示例7: openFile
bool XMLSceneryReader::openFile(const char* fileName) {
bool result = false;
XercesDOMParser* parser = new XercesDOMParser;
parser->setValidationScheme(XercesDOMParser::Val_Never);
parser->setDoSchema(false);
parser->setLoadExternalDTD(false);
parser->setErrorHandler(new XMLSceneryErrorHandler);
parser->parse(LocalFileInputSource(XMLString::transcode(fileName)));
if(!parser->getErrorCount()) {
m_root = parser->getDocument()->getFirstChild();
m_node = m_root;
result = true;
}
return result;
}
示例8: runtime_error
static void
xsdproc (std::string const &schemadir, std::string const &input, std::string const &output)
{
XercesDOMParser parser;
parser.setExternalSchemaLocation ((
"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul " + schemadir + "/xul.xsd "
"http://www.w3.org/1999/xhtml " + schemadir + "/xul-html.xsd "
"http://www.w3.org/2000/10/xlink-ns " + schemadir + "/xml/xlink.xsd "
//"http://www.w3.org/2001/SMIL20/ " + schemadir + "/smil/smil20.xsd "
"http://www.w3.org/2001/XInclude " + schemadir + "/xml/xinclude.xsd "
"http://www.w3.org/2002/07/owl# " + schemadir + "/owl/owl.xsd "
"http://www.w3.org/XML/1998/namespace " + schemadir + "/xml/xml.xsd "
).c_str ());
parser.setCreateEntityReferenceNodes (true);
parser.setDoNamespaces (true);
parser.setDoSchema (true);
parser.setDoXInclude (true);
parser.setHandleMultipleImports (true);
parser.setValidationSchemaFullChecking (true);
parser.setValidationScheme (XercesDOMParser::Val_Always);
error_handler handler;
parser.setErrorHandler (&handler);
parser.parse (input.c_str ());
if (handler.failed)
throw std::runtime_error ("validation failed for " + input);
serialise (parser.getDocument (), output);
}
示例9: domPrint
//
// domPrint - Dump the contents of a DOM node.
// For debugging failures, when all else fails.
// Works recursively - initially called with a document node.
//
void ThreadParser::domPrint()
{
printf("Begin DOMPrint ...\n");
if (gRunInfo.dom)
{
try
{
XMLCh tempStr[100];
XMLString::transcode("LS", tempStr, 99);
DOMImplementation *impl = DOMImplementationRegistry::getDOMImplementation(tempStr);
DOMLSSerializer *theSerializer = ((DOMImplementationLS*)impl)->createLSSerializer();
DOMLSOutput *theOutput = ((DOMImplementationLS*)impl)->createLSOutput();
XMLFormatTarget *myFormTarget = new StdOutFormatTarget();
theOutput->setByteStream(myFormTarget);
DOMNode *doc = fXercesDOMParser->getDocument();
theSerializer->write(doc,theOutput);
delete myFormTarget;
theSerializer->release();
theOutput->release();
}
catch (...)
{
// do nothing
}
}
printf("End DOMPrint\n");
}
示例10: ParseXmlFromTMS
// 解析TMS返回xml
bool CTMSSensor::ParseXmlFromTMS(std::string &retXml,int &nRet)
{
XercesDOMParser *ptrParser = new XercesDOMParser;
ptrParser->setValidationScheme( XercesDOMParser::Val_Never );
ptrParser->setDoNamespaces( true );
ptrParser->setDoSchema( false );
ptrParser->setLoadExternalDTD( false );
InputSource* ptrInputsource = new MemBufInputSource((XMLByte*)retXml.c_str(), retXml.size(), "bufId");
try
{
ptrParser->parse(*ptrInputsource);
DOMDocument* ptrDoc = ptrParser->getDocument();
// 读取ret节点
DOMNodeList *ptrNodeList = ptrDoc->getElementsByTagName(C2X("ret"));
if(ptrNodeList == NULL)
{
LOGIDFMT(ULOG_ERROR,ERROR_PARSE_MONITORSTATE_XML,"ParseXmlFromTMS:ret");
return false;
}
else
{
if(ptrNodeList->getLength() == 0)
{
LOGIDFMT(ULOG_ERROR,ERROR_PARSE_MONITORSTATE_XML,"ParseXmlFromTMS:ret");
return false;
}
DOMNode* ptrNode = ptrNodeList->item(0);
char* pstate = XMLString::transcode(ptrNode->getFirstChild()->getNodeValue());
std::string str_state = pstate;
if(!str_state.empty())
{
nRet = atoi(str_state.c_str());
}
XMLString::release(&pstate);
//LOGINFFMT("%s,%s\n",str_name.c_str(),str_state.c_str());
}
}
catch( XMLException& e )
{
char* message = XMLString::transcode( e.getMessage() );
XMLString::release( &message );
LOGIDFMT(ULOG_ERROR,ERROR_PARSE_MONITORSTATE_XML,message);
delete ptrParser;
ptrInputsource = NULL;
delete ptrInputsource;
ptrParser = NULL;
}
delete ptrParser;
delete ptrInputsource;
ptrInputsource = NULL;
ptrParser = NULL;
return true;
}
示例11: loadTranslations
bool
CategoryTranslationLoader::loadTranslations( const MC2String& filename ) try {
// load and parse file
XercesDOMParser parser;
parser.setValidationScheme( XercesDOMParser::Val_Auto );
parser.setIncludeIgnorableWhitespace( false );
parser.parse( filename.c_str() );
if ( parser.getDocument() == NULL ) {
return false;
}
loadTranslations( parser.getDocument() );
return true;
} catch ( const XMLTool::Exception& e ) {
// any xml exception here is bad.
return false;
}
示例12: loadDataFile
DOMDocument* DsaDataLoader::loadDataFile(string filename)
{
XercesDOMParser* parser = new XercesDOMParser();
parser->setValidationScheme(XercesDOMParser::Val_Always); // optional.
parser->setDoNamespaces(true); // optional
/* ErrorHandler* errHandler = (ErrorHandler*) new HandlerBase();
parser->setErrorHandler(errHandler);*/
XmlPtr res =
XmlResourceManager::getSingleton().create(
filename,
Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
res.getPointer()->parseBy(parser);
return parser->getDocument();
}
示例13: read
void XMLRuntime::read(const string& filename, FreeAX25::Runtime::Configuration& config) {
XercesDOMParser parser;
parser.setValidationScheme(XercesDOMParser::Val_Always);
parser.setDoNamespaces(true);
parser.setDoSchema(true);
parser.setDoXInclude(true);
parser.setHandleMultipleImports(true);
parser.setValidationSchemaFullChecking(true);
parser.setCreateEntityReferenceNodes(false);
parser.setIncludeIgnorableWhitespace(false);
DOMTreeErrorReporter errReporter;
parser.setErrorHandler(&errReporter);
parser.parse(filename.c_str());
if (errReporter.getSawErrors())
throw exception();
// Now read configuration from the DOM Tree:
XERCES_CPP_NAMESPACE::DOMDocument* doc = parser.getDocument();
assert(doc != nullptr);
auto rootElement = doc->getDocumentElement();
auto configName = rootElement->getAttribute(toX("name"));
config.setId(fmX(configName));
{ // Get settings:
auto nodeList = rootElement->getElementsByTagName(toX("Settings"));
if (nodeList->getLength() > 0)
readSettings(
"",
static_cast<DOMElement*>(nodeList->item(0)),
config.settings);
}
{ // Get plugins:
auto nodeList = rootElement->getElementsByTagName(toX("Plugins"));
if (nodeList->getLength() > 0)
readPlugins(
"",
static_cast<DOMElement*>(nodeList->item(0)),
config.plugins);
}
}
示例14: src
DOMDocument* tsp::Tool::parserXml(string myxml) {
if (!initXmlEngine() || myxml.empty())
return NULL;
XercesDOMParser* parser = new XercesDOMParser();
parser->setValidationScheme(XercesDOMParser::Val_Always);
parser->setDoNamespaces(true); // optional
ErrorHandler* errHandler = (ErrorHandler*) new HandlerBase();
parser->setErrorHandler(errHandler);
try {
MemBufInputSource src((const XMLByte*) myxml.c_str(), myxml.length(),
"dummy", false);
parser->parse(src);
} catch (const XMLException& toCatch) {
char* message = XMLString::transcode(toCatch.getMessage());
cout << "Exception message is: \n" << message << "\n";
XMLString::release(&message);
return NULL;
} catch (const DOMException& toCatch) {
char* message = XMLString::transcode(toCatch.msg);
cout << "Exception message is: \n" << message << "\n";
XMLString::release(&message);
return NULL;
} catch (...) {
cout << "Unexpected Exception \n";
return NULL;
}
DOMDocument* doc;
doc = parser->getDocument();
delete errHandler;
return doc;
}
示例15: if
//initialize a ResultXML object using an existing xml file
ResultXML::ResultXML(const char *file)
{
//sets-up for XML processing and handle any errors if unsuccessful
try{
XMLPlatformUtils::Initialize();
}
catch (XMLException &e){
char *msg = XMLString::transcode(e.getMessage());
XERCES_STD_QUALIFIER cerr << "Error During Initialization: " << endl << msg;
XMLString::release(&msg);
}
catch (...){
cerr << "Error Unknown Exception Encountered!" << endl;
}
//create a parser and set it to validate document but not load a DTD or use a schema
XercesDOMParser *parser = new XercesDOMParser();
parser->setValidationScheme(XercesDOMParser::Val_Always);
parser->setDoSchema(false);
parser->setLoadExternalDTD(false);
try{
//create unicode strings to for later use
XMLCh *spdName = XMLString::transcode("speed_result");
XMLCh *memName = XMLString::transcode("memory_result");
XMLCh *sectName = XMLString::transcode("section_list");
XMLCh *fname = XMLString::transcode(file);
//set the save location, parse the file and retrieve the required nodes
ftarget = new LocalFileFormatTarget(fname);
parser->parse(file);
doc = parser->getDocument();
root = doc->getDocumentElement();
DOMNodeList *nlist = root->getChildNodes();
//go through the nodelist finding the top level child nodes and assign them to the right member variables
for(XMLSize_t i=0; i<nlist->getLength(); i++){
DOMNode *curNode = nlist->item(i);
DOMElement *curElm;
//safely check for element node before casting
if(curNode->getNodeType() == DOMNode::ELEMENT_NODE){
curElm = dynamic_cast<DOMElement*>(curNode);
}
//check the tag name and assign accordingly
if(XMLString::equals(spdName, curElm->getTagName())){
spdResult = curElm;
}
else if(XMLString::equals(memName, curElm->getTagName())){
memResult = curElm;
}
else if(XMLString::equals(sectName, curElm->getTagName())){
sectList = curElm;
}
}
//release the memory occupied by the encoded strings
XMLString::release(&spdName);
XMLString::release(&memName);
XMLString::release(§Name);
XMLString::release(&fname);
}
catch (const OutOfMemoryException&){
XERCES_STD_QUALIFIER cerr << "Error Out of Memory Exception: " << XERCES_STD_QUALIFIER endl;
}
catch (const DOMException& e){
XERCES_STD_QUALIFIER cerr << "Error DOMException Encountered Code: " << e.code << XERCES_STD_QUALIFIER endl;
}
catch (...){
XERCES_STD_QUALIFIER cerr << "Unknown Error Encountered, Could Not Create Document" << XERCES_STD_QUALIFIER endl;
}
delete parser;
}