使用 pugixml 解析 XML 时出现问题

问题描述 投票:0回答:1

使用 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”。

c++ parsing pugixml
1个回答
0
投票

Botje的回答效果很好;聪明的主意。 (打印节点 child_value,将文本包装在适当的 xml 标记中并将其发送到 pugxml)

谢谢你,博杰

© www.soinside.com 2019 - 2024. All rights reserved.