使用 pugixml 和 C++,我无法解析以下内容来获取值和结果:
案例#1
<Response> Value="HERE" Result="1" </Response>
此 xml 格式是否被视为可接受的 xml?
如果是这样,如何使用pugixml进行解析?
这个解析:
案例#2:
<Response Value="HERE" Result="1" />
,
我可以将 Value 和 Result 作为案例 #2 中的属性。
不幸的是我无法控制xml字符串的传入格式。
我试过这个:
const char* xml_string = "<Response> Value='Here' Result='1' </Response>";
pugi::xml_document doc;
pugi::xml_parse_result result = doc.load_string(xml_string);
if (!result) {
std::cerr << "XML parsing error: " << result.description() << std::endl;
return 1;
}
pugi::xml_node Response = doc.child("Response");
if (!Response) {
std::cerr << "Error: Root element 'Response' not found" << std::endl;
return 1;
}
std::cout << "Element name: " << Response.name() << std::endl;
for (pugi::xml_attribute attr :Response.attributes()) {
std::cout << "Attribute: " << attr.name() << "=\"" << attr.value() << "\"" << std::endl;
}
我期望看到 Value 和 Result 及其相应的值“HERE”和“1”。
Botje的回答效果很好;聪明的主意。 (打印节点 child_value,将文本包装在适当的 xml 标记中并将其发送到 pugxml)
谢谢你,博杰