如何用C++实现参数名称和参数值的XML解析
我收到一个带有凭据的xml文件,我需要在c++11中解析它的值。 问题是我无法解析此特定的xml格式1:如何用C++实现参数名称和参数值的XML解析,c++,c++11,C++,C++11,我收到一个带有凭据的xml文件,我需要在c++11中解析它的值。 问题是我无法解析此特定的xml格式1: <Parameters> <Parameter ParameterName="AccessKey" ParameterValue="ABC"/> <Parameter ParameterName="SecretKey" ParameterValue="XYZ"/> </Parameters> 我熟悉boost::prope
<Parameters>
<Parameter ParameterName="AccessKey" ParameterValue="ABC"/>
<Parameter ParameterName="SecretKey" ParameterValue="XYZ"/>
</Parameters>
我熟悉boost::property_tree,但我只能解析格式2以下的格式:
<Parameters>
<AccessKey>ABC</AccessKey>
<SecretKey>XYZ</SecretKey>
</Parameters>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
namespace pt = boost::property_tree;
bool getCredentialsfromXml(const std::string &xmlFileName, Credentials& credentials)
{
pt::ptree tree;
pt::read_xml(xmlFileName, tree);
// 1. AccessKey
credentials.m_accessKey = tree.get_optional<std::string>("Parameters.AccessKey");
// 2. SecretKey
credentials.m_secretKey = tree.get_optional<std::string>("Parameters.SecretKey");
return true;
}
下面是我用来解析xml格式2的代码:
<Parameters>
<AccessKey>ABC</AccessKey>
<SecretKey>XYZ</SecretKey>
</Parameters>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
namespace pt = boost::property_tree;
bool getCredentialsfromXml(const std::string &xmlFileName, Credentials& credentials)
{
pt::ptree tree;
pt::read_xml(xmlFileName, tree);
// 1. AccessKey
credentials.m_accessKey = tree.get_optional<std::string>("Parameters.AccessKey");
// 2. SecretKey
credentials.m_secretKey = tree.get_optional<std::string>("Parameters.SecretKey");
return true;
}
有没有办法修改我的代码来解析xml格式1?
或者用其他方法在c++11中解析xml格式1
提前谢谢 如果您想坚持使用boost::Property_树,而不需要理解和解析更多XML,那么下面的stackoverflow答案可能会对您有所帮助:
新格式使用XML属性,而旧格式仅使用XML元素。你不需要什么都知道。但是你需要知道像属性这样的技术术语,这样你就可以像我一样用谷歌搜索了-有很多XML加载程序和解析器可用,其中很多都是C++的。你可能想搜索一下这些库中的一些。我想你可以看看。但是你可以自己找到这个链接:你可以试试这个,非常感谢,我不熟悉术语属性和元素。我在你所附的链接中找到了答案。谢谢