本文整理汇总了C++中XNode::GetChildren方法的典型用法代码示例。如果您正苦于以下问题:C++ XNode::GetChildren方法的具体用法?C++ XNode::GetChildren怎么用?C++ XNode::GetChildren使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XNode
的用法示例。
在下文中一共展示了XNode::GetChildren方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Insert
bool TransactionHandler::Insert(XNode* pxInsert, WebContext* pWebContext, FeatureWorkspace* pWorkspace)
{
XNode* pxType = pxInsert->GetFirstChild();
if(pxType==NULL)
{
return false;
}
GLogger* pLogger = augeGetLoggerInstance();
GError* pError = augeGetErrorInstance();
RESULTCODE rc = AG_FAILURE;
const char* name = pxType->GetName();
FeatureClass* pFeatureClass = NULL;
pFeatureClass = pWorkspace->OpenFeatureClass(name);
if(pFeatureClass==NULL)
{
char msg[AUGE_MSG_MAX];
g_snprintf(msg, AUGE_MSG_MAX, "Fail to get FeatureClass [%s]", name);
pLogger->Error(msg, __FILE__, __LINE__);
pError->SetError(msg);
return false;
}
Feature* pFeature = pFeatureClass->NewFeature();
if(pFeature==NULL)
{
return false;
}
GField *pField = NULL;
GFields *pFields = pFeatureClass->GetFields();
const char* fname = NULL;
bool ok = true;
GValue* pValue = NULL;
XNode* pxNode = NULL;
XNodeSet* pxNodeSet = pxType->GetChildren();
pxNodeSet->Reset();
while((pxNode=pxNodeSet->Next())!=NULL)
{
fname = pxNode->GetName();
pField = pFields->GetField(fname);
if(pField!=NULL)
{
pValue = CreateValue(pxNode, pField);
if(pValue!=NULL)
{
pFeature->SetValue(fname, pValue);
}
else
{
char msg[AUGE_MSG_MAX];
g_snprintf(msg, AUGE_MSG_MAX, "Field [%s]: Invalid Value", fname);
pLogger->Error(msg, __FILE__, __LINE__);
pError->SetError(msg);
ok = false;
break;
}
}
else
{
char msg[AUGE_MSG_MAX];
g_snprintf(msg, AUGE_MSG_MAX, "FeatureClss does not have Field [%s]", fname);
pLogger->Error(msg, __FILE__, __LINE__);
pError->SetError(msg);
ok = false;
break;
}
}
pxNodeSet->Release();
if(ok)
{
FeatureInsertCommand* cmd = pFeatureClass->CreateInsertCommand();
rc = cmd->Insert(pFeature);
AUGE_SAFE_RELEASE(cmd);
}
AUGE_SAFE_RELEASE(pFeature);
AUGE_SAFE_RELEASE(pFeatureClass);
return !rc;
}