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


C++ Element::GetValue方法代码示例

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


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

示例1: Deserialize

/*!
 * Unsafe load
 *
 * \throws	ExceptionProtocol	the content of the vector is not serializable
 * \throws	ExceptionInvalidArgument	not a Vector
 * \throws	ExceptionRuntime	impossible to read an XML element
 * \throws	ExceptionNotFound	unknown type
 *
 * \param[in]	el	the element to load
 */
void Vector::Deserialize(xml::Element &el)
{
	if (el.GetValue() != getClassName())
	{
		throw ExceptionInvalidArgument(StringUTF8("void Vector::Deserialize(xml::Element &el): ") + 
				_("Wrong XML element."));
	}
	std::multimap<int, SObject> xmllist;
	for (xml::Element te = el.BeginElement(); te != el.EndElement(); ++te)
	{
		SObject d(nullptr);
		try
		{
			d = DataFactory::CreateData(te);
		}
		catch (crn::Exception &)
		{	// XXX throw?
			CRNWarning(String(U"void Vector::Deserialize"
						U"(xml::Element &el): ") + String(_("Unknown XML element: ")) +
					te.GetValue());
		}
		if (!d)
			continue;
		int index;
		try { index = te.GetAttribute<int>("vector_index", false); } catch (...) { index = int(xmllist.size()); }
		xmllist.insert(std::make_pair(index, d));
	}
	Clear();
	for (auto & elem : xmllist)
		data.push_back(elem.second);
	ShrinkToFit();
}
开发者ID:jeanduong,项目名称:libcrn,代码行数:42,代码来源:CRNVector.cpp

示例2: ExceptionInvalidArgument

/*! 
 * Initializes the object from an XML element. Unsafe.
 *
 * \throws	ExceptionInvalidArgument	not a StringUTF8
 * \throws	ExceptionDomain	no CDATA found
 *
 * \param[in]	el	the XML element to read
 */
void StringUTF8::Deserialize(xml::Element &el)
{
	if (el.GetValue() != "StringUTF8")
	{
		throw ExceptionInvalidArgument(StringUTF8("void StringUTF8::deserialize(xml::Element &el): ") + 
				_("Wrong XML element."));
	}
	xml::Node c(el.GetFirstChild());
	if (!c)
		return; // no content
	xml::Text t(c.AsText()); // may throw
	*this = t.GetValue();
	ShrinkToFit();
}
开发者ID:jeanduong,项目名称:libcrn,代码行数:22,代码来源:CRNStringUTF8.cpp

示例3: CreateData

/*! 
 * Creates and initializes a CRNData from an XML element 
 *
 * \throws	ExceptionInvalidArgument	null XML element
 * \throws	ExceptionRuntime	impossible to read the XML element
 * \throws	ExceptionNotFound	unknown type
 *
 * \param[in]	el	the XML element to use for initialization
 * \return	a pointer to the newly created object, or nullptr if failed
 */
UObject DataFactory::CreateData(xml::Element &el)
{
	if (!el)
	{
		throw ExceptionInvalidArgument(StringUTF8("SObject DataFactory::CreateData(xml::Element &el): ") + 
				_("Null XML element."));
	}
	const StringUTF8 typ = el.GetValue();
	if (typ.IsEmpty())
	{
		throw ExceptionRuntime(StringUTF8("SObject DataFactory::CreateData(xml::Element &el): ") + _("Cannot read element."));
	}
	return getInstance().createObject(typ, el); // may throw
}
开发者ID:Liris-Pleiad,项目名称:libcrn,代码行数:24,代码来源:CRNDataFactory.cpp


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