.net如何生成4级xml文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net如何生成4级xml文件相关的知识,希望对你有一定的参考价值。

参考技术A 根据xml结构一步一步构建xml文档,保存文件,或者直接加载xml结构,保存文件。
动态创建xml文档的方法(根据传递的值,构建xml文档结构):
1、创建实体类,保存窗体传递的值。
2、创建窗体页面。
3、固定方式和灵活方式的源码。
4、固定创建的xml文档和灵活创建的xml文档视图。

如何使用 ptree(boost) 遍历 XML 文件中的同名子级?

【中文标题】如何使用 ptree(boost) 遍历 XML 文件中的同名子级?【英文标题】:How to iterate over children with the same name in an XML file using ptree(boost)? 【发布时间】:2013-11-07 08:10:45 【问题描述】:

我有一个这样的 XML 文件:

 <shape name="rightellipsoid" type="instance" id="eggBase">
    <transform name="xform1">
      <translate>2.5 1.5 -4.0</translate>
      <rotate axis="X">90.0</rotate>
      <scale>1.0 0.5 1.5</scale>
      <rotate axis="Y">95.0</rotate>
    </transform>
  </shape>

我可以使用以下方法检索 translate 和 scale 的值:

boost::optional<Vector3D> scale = v.second.get_optional<Vector3D>("scale");

注意:Vector3D 是我的数据类型

但是如果我对我的旋转节点做同样的事情,它总是会返回第一个值。 如何获取第二个旋转节点的值?

【问题讨论】:

【参考方案1】:

试试这样的:

std::string rotate_x, rotate_y;
boost::property_tree::ptree pt;

BOOST_FOREACH( ptree::value_type const& val, pt.get_child("shape.transform") ) 

    if(val.first == "rotate") 
    
        std::string temp = val.second.get_child("<xmlattr>.axis").data();

        if(temp == "X") rotate_x = val.second.data();
        if(temp == "Y") rotate_y = val.second.data();
    

【讨论】:

以上是关于.net如何生成4级xml文件的主要内容,如果未能解决你的问题,请参考以下文章

如何分析 Windows Crash Reporter 生成的 WERInternalMetadata.xml 文件?

如何在 ASP.NET MVC 中向客户端发送 XML 文件

XML-入门级

如何使用 ptree(boost) 遍历 XML 文件中的同名子级?

如何生成xml文件

提取文件夹中所有xml文件中的数据到txt(为人脸识别级联器使用的txt做准备)