本文整理汇总了C++中xml_document::append_child方法的典型用法代码示例。如果您正苦于以下问题:C++ xml_document::append_child方法的具体用法?C++ xml_document::append_child怎么用?C++ xml_document::append_child使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xml_document
的用法示例。
在下文中一共展示了xml_document::append_child方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ftof_volumes_xml
void ftof_volumes_xml(xml_document& doc, const ForwardTOF& ftof)
{
// start building up the XML document
xml_node geom_node = doc.child("geometry");
if (!geom_node)
{
geom_node = doc.append_child("geometry");
}
xml_node dc_node = geom_node.child("forward_tof");
if (!dc_node)
{
dc_node = geom_node.append_child("forward_tof");
}
xml_node vol_node = dc_node.child("volumes");
if (!vol_node)
{
vol_node = dc_node.append_child("volumes");
}
for (auto k1 : ftof_volumes_map(ftof))
{
xml_node n1 = vol_node.append_child(k1.first.c_str());
for (auto k2 : k1.second)
{
xml_node n2 = n1.append_child(k2.first.c_str());
n2.append_child(node_pcdata).set_value(k2.second.c_str());
}
}
}
示例2: dc_core_params_xml
void dc_core_params_xml(xml_document& doc, const DriftChamber& dc, const string& units="cm")
{
double lconv = length_conversion(units);
// start building up the XML document
xml_node geom_node = doc.child("geometry");
if (!geom_node)
{
geom_node = doc.append_child("geometry");
}
xml_node dc_node = geom_node.child("drift_chamber");
if (!dc_node)
{
dc_node = geom_node.append_child("drift_chamber");
}
xml_node params_node = dc_node.append_child("core_params");
for (int nreg : vector<int>{0, 1, 2})
{
xml_node reg_node = params_node.append_child("region");
reg_node.append_attribute("index") = nreg;
for (int nslyr : vector<int>{0, 1})
{
xml_node slyr_node = reg_node.append_child("superlayer");
slyr_node.append_attribute("index") = nslyr;
slyr_node.append_attribute("wpdist") = dc.sector(0).region(nreg).superlayer(nslyr).wpdist() * lconv;
}
}
}
示例3: write_xml
/// Initialize the XML DOM structure (leaving .desc unchanged) from the data.
void stream_info_impl::write_xml(xml_document &doc) {
const char *channel_format_strings[] = {"undefined","float32","double64","string","int32","int16","int8","int64"};
xml_node info = doc.append_child("info");
info.append_child("name").append_child(node_pcdata).set_value(name_.c_str());
info.append_child("type").append_child(node_pcdata).set_value(type_.c_str());
info.append_child("channel_count").append_child(node_pcdata).set_value(lexical_cast<string>(channel_count_).c_str());
info.append_child("nominal_srate").append_child(node_pcdata).set_value(lexical_cast<string>(nominal_srate_).c_str());
info.append_child("channel_format").append_child(node_pcdata).set_value(channel_format_strings[channel_format_]);
info.append_child("source_id").append_child(node_pcdata).set_value(source_id_.c_str());
info.append_child("version").append_child(node_pcdata).set_value(lexical_cast<string>(version_/100.0).c_str());
info.append_child("created_at").append_child(node_pcdata).set_value(lexical_cast<string>(created_at_).c_str());
info.append_child("uid").append_child(node_pcdata).set_value(uid_.c_str());
info.append_child("session_id").append_child(node_pcdata).set_value(session_id_.c_str());
info.append_child("hostname").append_child(node_pcdata).set_value(hostname_.c_str());
info.append_child("v4address").append_child(node_pcdata).set_value(v4address_.c_str());
info.append_child("v4data_port").append_child(node_pcdata).set_value(lexical_cast<string>(v4data_port_).c_str());
info.append_child("v4service_port").append_child(node_pcdata).set_value(lexical_cast<string>(v4service_port_).c_str());
info.append_child("v6address").append_child(node_pcdata).set_value(v6address_.c_str());
info.append_child("v6data_port").append_child(node_pcdata).set_value(lexical_cast<string>(v6data_port_).c_str());
info.append_child("v6service_port").append_child(node_pcdata).set_value(lexical_cast<string>(v6service_port_).c_str());
info.append_child("desc");
}
示例4: ftof_panels_parms_xml
void ftof_panels_parms_xml(xml_document& doc, const ForwardTOF& ftof, const string& coordsys="clas", const string& units="cm")
{
double lconv = length_conversion(units);
if (coordsys != "sector" && coordsys != "clas")
{
throw runtime_error(string("can not generate data in ") + coordsys + " coordinates");
}
coordsys_t coord = str2coord(coordsys);
// start building up the XML document
xml_node geom_node = doc.child("geometry");
if (!geom_node)
{
geom_node = doc.append_child("geometry");
}
xml_node ftof_node = geom_node.child("forward_tof");
if (!ftof_node)
{
ftof_node = geom_node.append_child("forward_tof");
}
xml_node panels_node = ftof_node.child("panels_parms");
if (!panels_node)
{
panels_node = ftof_node.append_child("panels_parms");
panels_node.append_attribute("length_units");
panels_node.append_attribute("coordinate_system");
}
panels_node.attribute("length_units") = units.c_str();
panels_node.attribute("coordinate_system") = coordsys.c_str();
for (int sec=0; sec<ftof.sectors().size(); sec++)
{
const forward_tof::Sector& ftof_sector = ftof.sector(sec);
for (int pan=0; pan<ftof_sector.panels().size(); pan++)
{
const forward_tof::Panel& panel = ftof_sector.panel(pan);
xml_node panel_node = panels_node.append_child("panel");
panel_node.append_attribute("sector") = sec;
panel_node.append_attribute("panel") = ftof_sector.panel_name(pan).c_str();
panel_node.append_attribute("npaddles") = int(panel.npaddles());
panel_node.append_attribute("dist2tgt") = panel.dist2tgt() * lconv;
direction_vector<double,3> panel_norm = panel.panel_normal(coord);
panel_node.append_attribute("norm_phi") = panel_norm.phi();
panel_node.append_attribute("norm_theta") = panel_norm.theta();
direction_vector<double,3> paddle_dir = panel.paddle_direction(coord);
panel_node.append_attribute("paddle_phi") = paddle_dir.phi();
panel_node.append_attribute("paddle_theta") = paddle_dir.theta();
panel_node.append_attribute("paddle_width") = panel.paddle_width() * lconv;
panel_node.append_attribute("paddle_thickness") = panel.paddle_thickness() * lconv;
euclid_vector<double,3> paddle_extent = panel.paddle_extent(COORDSYS::SECTOR);
panel_node.append_attribute("paddle_extent_x") = paddle_extent.x() * lconv;
panel_node.append_attribute("paddle_extent_z") = paddle_extent.z() * lconv;
xml_node center_node = panel_node.append_child("paddle_centers");
vector<xml_node> paddle_centers_node;
paddle_centers_node.push_back(center_node.append_child("x"));
paddle_centers_node.push_back(center_node.append_child("y"));
paddle_centers_node.push_back(center_node.append_child("z"));
vector<stringstream> centers(3);
for (auto cntr : panel.paddle_centers(coord))
{
centers[0] << " " << cntr.x() * lconv;
centers[1] << " " << cntr.y() * lconv;
centers[2] << " " << cntr.z() * lconv;
}
for (int i=0; i<paddle_centers_node.size(); i++)
{
paddle_centers_node[i].append_child(pugi::node_pcdata).set_value(
centers[i].str().erase(0,1).c_str());
}
xml_node length_node = panel_node.append_child("paddle_lengths");
stringstream lengths;
for (auto lngth : panel.paddle_lengths())
{
lengths << " " << lngth;
}
length_node.append_child(pugi::node_pcdata).set_value(
lengths.str().erase(0,1).c_str());
}
}
}