当前位置: 首页>>代码示例>>C++>>正文


C++ XMLParser::Parse方法代码示例

本文整理汇总了C++中XMLParser::Parse方法的典型用法代码示例。如果您正苦于以下问题:C++ XMLParser::Parse方法的具体用法?C++ XMLParser::Parse怎么用?C++ XMLParser::Parse使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在XMLParser的用法示例。


在下文中一共展示了XMLParser::Parse方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main

int main(int argc, char **argv)
{
  std::string nodeName = "node";
  std::string hostName = "localhost";
  std::string configFile = "";
  
  for(int i = 0; i < argc; i++)
  {
    if(!strcmp(argv[i], "-nodename"))
      nodeName = argv[i+1];
    if(!strcmp(argv[i], "-hostname"))
      hostName = argv[i+1];
    if(!strcmp(argv[i], "-config"))
      configFile = argv[i+1];
  }

  std::vector<boost::thread*> compThreads;
  XMLParser nodeParser;
  std::string configFileName = nodeName + ".xml";
  if (configFile.length() > 0)
    configFileName = configFile;
  if (nodeParser.Parse(configFileName))
  {      
    ros::init(argc, argv, nodeName.c_str());

    // Create Node Handle
    ros::NodeHandle n;

    ROS_INFO_STREAM(nodeName << " thread id = " << boost::this_thread::get_id());
    
    for (int i=0;i<nodeParser.compConfigList.size();i++)
    {
      std::string libraryLocation = nodeParser.compConfigList[i].libraryLocation;
      void *hndl = dlopen(libraryLocation.c_str(), RTLD_NOW);
      if(hndl == NULL)
      {
	cerr << dlerror() << endl;
	exit(-1);
      }
      void *mkr = dlsym(hndl, "maker");
      Component *comp_inst = ((Component *(*)(ComponentConfig &, int , char **))(mkr))
	(nodeParser.compConfigList[i], argc, argv);

      // Create Component Threads
      boost::thread *comp_thread = new boost::thread(componentThreadFunc, comp_inst);
      compThreads.push_back(comp_thread);
      ROS_INFO_STREAM(nodeName << " has started " << nodeParser.compConfigList[i].compName);
    }
    for (int i=0;i<compThreads.size();i++)
    {
      compThreads[i]->join();
    }
    return 0; 
  }
  else
  {
    printf("ERROR::Unable to parse XML file\n");
    return -1;
  }
}
开发者ID:finger563,项目名称:agse2015,代码行数:60,代码来源:node_main.cpp

示例2: ReadLangTo

void DictionaryInfo::ReadLangTo(const GUTF8String& str, bool bEncoded)
{
	strLangToCode = "";
	langToLoc.clear();

	if (str.length() == 0)
		return;

	string strTemp = str;
	if (bEncoded)
		Base64Decode(strTemp);

	strLangToRaw = strTemp.c_str();

	stringstream sin(strTemp.c_str());
	XMLParser parser;
	if (parser.Parse(sin))
	{
		wstring strCode;
		if (parser.GetRoot()->GetAttribute(pszAttrCode, strCode))
			strLangToCode = MakeUTF8String(strCode);

		ReadLocalizedStrings(langToLoc, *parser.GetRoot());
	}
}
开发者ID:mavrus95,项目名称:windjview-subpix,代码行数:25,代码来源:DjVuSource.cpp

示例3: file_name_str

OP_STATUS
WebFeedStorage::LocalLoad(const uni_char *file_name)
{
	OP_STATUS oom = OpStatus::OK;

	OpFile feed_file;
	OpStringC file_name_str(file_name);
	oom = feed_file.Construct(file_name_str.CStr(), OPFILE_WEBFEEDS_FOLDER);
	if (OpStatus::IsError(oom))
		return oom;

	UnicodeFileInputStream in_stream;
	RETURN_IF_ERROR(in_stream.Construct(&feed_file, URL_XML_CONTENT, TRUE));

	XMLParser *parser;
	URL dummy;
	RETURN_IF_ERROR(XMLParser::Make(parser, NULL, g_main_message_handler, this, dummy));
	OpStackAutoPtr<XMLParser> protected_parser(parser);

	// Set up XML configuration for parsing web feed storage:
	XMLParser::Configuration configuration;
	configuration.load_external_entities = XMLParser::LOADEXTERNALENTITIES_NO;
	configuration.max_tokens_per_call = 0;  // unlimited
#if defined(_DEBUG) && defined(XML_ERRORS)
	configuration.generate_error_report = TRUE;
#endif

	parser->SetConfiguration(configuration);

	int buf_len = 2048;

	BOOL more = in_stream.has_more_data();
	while (OpStatus::IsSuccess(oom) && more && !parser->IsFailed())
	{
		uni_char *buf = in_stream.get_block(buf_len);
		more = in_stream.has_more_data();

		OP_ASSERT(buf_len % sizeof(uni_char) == 0);
		buf_len /= sizeof(uni_char);

		OP_ASSERT(buf);
		if (!buf)
			return OpStatus::ERR;
		
		oom = parser->Parse(buf, buf_len, more);
		OP_ASSERT(!parser->IsFailed());
#if defined(_DEBUG) && defined XML_ERRORS
		if (parser->IsFailed())
		{
			XMLRange range;
			const char *error, *url, *fragment;
		
			range = parser->GetErrorPosition();
			parser->GetErrorDescription(error, url, fragment);
		}
#endif // defined(_DEBUG) && defined(XML_ERRORS)
	}

	return OpStatus::OK;
}
开发者ID:prestocore,项目名称:browser,代码行数:60,代码来源:webfeedstorage.cpp

示例4: WriteMetaDataToFile

//------------------------------------------//
// AssetMetaDataParser::WriteMetaData				
//------------------------------------------//
bool AssetMetaDataParser::WriteMetaDataToFile(
class File& metaDataFile,
	const struct AssetMetaData& metaData)
{
	if (!CheckMetaDataFileIsValid(metaDataFile))
	{
		return false;
	}

	// Check if the file is new and cleared
	if (metaDataFile.GetFilemode() != File::READ_WRITE_NEW)
	{
		Log::GetLog().LogHighMsg("MetaDataFile is not empty.");
		return false;
	}

	//Begin the XML parsing
	XMLParser parser;
	if (!parser.Parse(metaDataFile))
	{
		return false;
	}

	XMLElement baseElement = parser.CreateNewElement(ASSET_TAG);
	baseElement.CreateChildElement(ASSET_NAME_TAG, metaData.AssetName);
	
	//Determine readable name from TypeHash
	std::string assetType = "Invalid";
	if (!mAssetFileTypeExtensions->HashIsOfAssetTypeName(metaData.AssetTypeHash, assetType))
	{
		//Log that we cant determine type
	}

	baseElement.CreateChildElement(ASSET_TYPE_TAG, assetType);
	baseElement.CreateChildElement(ASSET_PATH_TAG, metaData.AssetFilePath);

	XMLElement attrElement = baseElement.CreateChildElement(ASSET_ATTRIBUTE_TAG);
	XMLElement scalarAttrElement = attrElement.CreateChildElement(ASSET_SCALAR_ATTRIBUTE_TAG);
	XMLElement vectorAttrElement = attrElement.CreateChildElement(ASSET_VECTOR_ATTRIBUTE_TAG);

	AssetScalarAttributeContainer& container = AssetDefaultAttributes<Texture2D>::DefaultScalarAttributes;
	for each (AssetScalarAttribute scalarAttr in container)
	{
		scalarAttrElement.CreateChildElement(scalarAttr.AttributeName, ToString(scalarAttr.AttributeValue));
	}
开发者ID:TaintedGear,项目名称:GameFramework,代码行数:48,代码来源:AssetMetaDataParser.cpp

示例5: ReadTitle

void DictionaryInfo::ReadTitle(const GUTF8String& str, bool bEncoded)
{
	titleLoc.clear();

	if (str.length() == 0)
		return;

	string strTemp = str;
	if (bEncoded)
		Base64Decode(strTemp);

	strTitleRaw = strTemp.c_str();

	stringstream sin(strTemp.c_str());
	XMLParser parser;
	if (parser.Parse(sin))
		ReadLocalizedStrings(titleLoc, *parser.GetRoot());
}
开发者ID:mavrus95,项目名称:windjview-subpix,代码行数:18,代码来源:DjVuSource.cpp

示例6: ReadXMLFile

bool XMLDoc::ReadXMLFile(const std::string& fileName)
{
	std::wifstream fileStream;
	fileStream.open(fileName.c_str(), std::wifstream::in);
	if( fileStream.fail() )
	{
		wprintf(L"FILE OPEN ERROR");
		return false;
	}

	unsigned int length = 0;
	fileStream.seekg(0, fileStream.end);
	length = fileStream.tellg();
	fileStream.seekg(0, fileStream.beg);

	if ( length <= 0 )
	{
		return false;
	}

	wchar_t* buf = new wchar_t[ length+1 ];
	buf[0] = 0;

	fileStream.read(buf, length );
	buf[length] = '\0';

	XMLParser parser;
	_mRoot = parser.Parse(buf, length);
	if( _mRoot == nullptr )
	{

	}

	fileStream.close();

	return true;
}
开发者ID:krbod,项目名称:XMLParser,代码行数:37,代码来源:XMLDoc.cpp

示例7: main

int main(int argc, char* argv[])
{
	std::string file;
	std::string cFile;
	std::string host="127.0.0.1";
	std::string user;
	std::string port="5432";
	std::string dbname;
	std::string passwd;
	bool skipnodes = false;
	bool clean = false;
	if(argc >=7 && argc <=17)
	{
		int i=1;
		while( i<argc)
		{
			if(strcmp(argv[i],"-file")==0)
			{	
				i++;
				file = argv[i];
			}

			else if(strcmp(argv[i],"-conf")==0)
			{	
				i++;
				cFile = argv[i];
			}
				
			else if(strcmp(argv[i],"-host")==0)
			{
				i++;
				host = argv[i];
			}
			else if(strcmp(argv[i],"-dbname")==0)
			{
				i++;
				dbname = argv[i];
			}
			else if(strcmp(argv[i],"-user")==0)
			{
				i++;
				user = argv[i];
			}
			else if(strcmp(argv[i],"-port")==0)
			{
				i++;
				port = argv[i];
			}
			else if(strcmp(argv[i],"-passwd")==0)
			{
				i++;
				passwd = argv[i];
			}
			else if(strcmp(argv[i],"-clean")==0)
			{
				clean = true;
			}
			else if(strcmp(argv[i],"-skipnodes")==0)
            {
                skipnodes = true;
            }
			else
			{
				cout << "unknown paramer: " << argv[i] << endl;
				_error();
				return 1;
			}
			
			i++;
		}
		
	}
	else
	{
		_error();
		return 1;
	}
	
	if(file.empty() || cFile.empty() || dbname.empty() || user.empty())
	{
		_error();
		return 1;
	}
	
	Export2DB test(host, user, dbname, port, passwd);
	if(test.connect()==1)
		return 1;


	XMLParser parser;
	
	cout << "Trying to load config file " << cFile.c_str() << endl;

	Configuration* config = new Configuration();
        ConfigurationParserCallback cCallback( *config );

	cout << "Trying to parse config" << endl;

	int ret = parser.Parse( cCallback, cFile.c_str() );
	if( ret!=0 ) {
//.........这里部分代码省略.........
开发者ID:fhackenberger,项目名称:osm2pgrouting,代码行数:101,代码来源:osm2pgrouting.cpp

示例8: ParseLevelConfig

void Level::ParseLevelConfig(std::wstring fileName)
{
	XMLParser* parser = new XMLParser();
	parser->LoadFile(fileName);

	while (parser->Parse(L"Level"))
	{
		// Skip the tag if its not an opening tag.
		if (parser->GetTagType() != XMLParser::OPENING)
		{
			continue;
		}

		// Read the tag if its an opening tag
		std::wstring tagName = parser->GetTagName();
		std::wstring tagContent = parser->GetTagContent();

		if (tagName.compare(L"ID") == 0)
		{
			m_LevelName = tagContent;
		}
		else if (tagName.compare(L"StandardConfig") == 0)
		{
			m_StandardConfigPath = tagContent;
		}
		else if (tagName.compare(L"SVG") == 0)
		{
			m_SVGPath = tagContent;
			m_ActorLayoutPtr->AddSVGShape(String(m_SVGPath.c_str()));
		}
		else if (tagName.compare(L"Visuals") == 0)
		{
			m_VisualsPath = tagContent;
			m_ImgVisualsPtr = new Bitmap(String(m_VisualsPath.c_str()));

			// Add a polygonal shape around the level
			std::vector<DOUBLE2> levelBoundaries(4);
			levelBoundaries[0] = DOUBLE2(0, 0);
			levelBoundaries[1] = DOUBLE2(0, m_ImgVisualsPtr->GetHeight());
			levelBoundaries[2] = DOUBLE2(m_ImgVisualsPtr->GetWidth(), m_ImgVisualsPtr->GetHeight());
			levelBoundaries[3] = DOUBLE2(m_ImgVisualsPtr->GetWidth(), 0);

			m_ActorLayoutPtr->AddChainShape(levelBoundaries, true);
		}
		else if (tagName.compare(L"Shadows") == 0)
		{
			m_ShadowsPath = tagContent;
			m_ImgShadowsPtr = new Bitmap(String(m_ShadowsPath.c_str()));
		}
		else if (tagName.compare(L"Navigation") == 0)
		{
			// Loads an image that is converted and used a navigation grid
			m_NavigationPath = tagContent;
			Bitmap* navigationImg = new Bitmap(String(m_NavigationPath.c_str()));
			// Create a navigation grid for the pathfinding algorithm.
			std::vector<std::vector<COLOR>> rawPixelData = navigationImg->GetRawPixelData();
			m_NavigationGrid = std::vector<std::vector<bool>>(navigationImg->GetHeight(), std::vector<bool>(navigationImg->GetWidth()));
			for (int i = 0; i < navigationImg->GetHeight(); ++i)
			{
				for (int j = 0; j < navigationImg->GetWidth(); ++j)
				{
					COLOR color = rawPixelData[i][j];
					int avarageValue = (color.red + color.green + color.blue) / 3;
					
					if (avarageValue < 128)
					{
						m_NavigationGrid[i][j] = false;
					}
					else
					{
						m_NavigationGrid[i][j] = true;
					}
				}

				rawPixelData[i].clear();
			}
			rawPixelData.clear();

			delete navigationImg;
			
		}
		else if (tagName.compare(L"Objective") == 0)
		{
			m_ObjectivePath = tagContent;
			m_ImgIntroPtr = new Bitmap(String(m_ObjectivePath.c_str()));
		}
		else if (tagName.compare(L"AudioMainMusic") == 0)
		{
			m_AudioMainMusic = tagContent;
		}
		else if (tagName.compare(L"AudioCompletedMusic") == 0)
		{
			m_AudioCompletedMusic = tagContent;
		}
		else if (tagName.compare(L"AudioCompletedEffect") == 0)
		{
			m_AudioCompletedEffect = tagContent;
		}
		else if (tagName.compare(L"EndZone") == 0)
		{
//.........这里部分代码省略.........
开发者ID:juniordiscart,项目名称:StreetJustice911,代码行数:101,代码来源:Level.cpp

示例9: if

HX_RESULT
RTSPMediaDesc::fromExternalRep(char* pData)
{
    XMLParser parser;
    XMLTag* pTag = 0;
    CByteQueue* pQueue = new CByteQueue((UINT16)strlen(pData));
    HXBOOL inMediaHeader = FALSE;
    HXBOOL inMediaStream = FALSE;
    HX_RESULT hresult = HXR_OK;

    RTSPPropertyList* pMediaHeader = 0;
    RTSPPropertyList* pMediaStream = 0;

    pQueue->EnQueue(pData, (UINT16)strlen(pData));
    for(;;)
    {
	UINT32 bytesUsed;
	UINT32 bytesAvail = pQueue->GetQueuedItemCount();
	if(bytesAvail <= 0)
	{
	    break;
	}

	BYTE* pBuf = new BYTE[bytesAvail];
	BYTE* p = pBuf;

	HX_ASSERT(bytesAvail == (UINT16)bytesAvail);

	pQueue->DeQueue(pBuf, (UINT16)bytesAvail);
	bytesUsed = bytesAvail;

	if(pTag)
	{
	    delete pTag;
	    pTag = 0;
	}

	XMLParseResult rc = parser.Parse((const char*&)p, bytesAvail, pTag);

	HX_ASSERT(bytesAvail == (UINT16)bytesAvail);

	pQueue->EnQueue(p, (UINT16)(bytesAvail - (p - pBuf)));

	switch(rc)
	{
	    case XMLPTag:
	    {
		switch(pTag->m_type)
		{
		    case XMLPlainTag:
		    {
			if(strcasecmp(pTag->m_name, "MediaHeader") == 0)
			{
			    if(inMediaHeader)
			    {
				//XXXBAB parse error
			    }
			    if(pMediaHeader)
			    {
				delete pMediaHeader;
			    }
			    pMediaHeader = new RTSPPropertyList;
			    inMediaHeader = TRUE;
			    inMediaStream = FALSE;
			}
			else if(strcasecmp(pTag->m_name, "MediaStream") == 0)
			{
			    if(inMediaStream)
			    {
				//XXXBAB parse error
			    }
			    pMediaStream = new RTSPPropertyList;
			    inMediaHeader = FALSE;
			    inMediaStream = TRUE;
			}
			else
			{
			    RTSPProperty* pProp = makeProperty(pTag);
			    if(pProp)
			    {
				if(inMediaHeader)
				{
				    pMediaHeader->addProperty(pProp);
				}
				else if(inMediaStream)
				{
				    pMediaStream->addProperty(pProp);
				}
			    }
			}
		    }
		    break;

		    case XMLEndTag:
		    {
			if(strcasecmp(pTag->m_name, "MediaHeader") == 0)
			{
			    if(inMediaHeader)
			    {
				m_pFileHeader = pMediaHeader;
//.........这里部分代码省略.........
开发者ID:muromec,项目名称:qtopia-ezx,代码行数:101,代码来源:rtspmdsc.cpp


注:本文中的XMLParser::Parse方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。