【发布时间】:2017-04-09 22:54:51
【问题描述】:
我正在为基于 pugixml 的 XML 解析器编写一些便利函数,现在我遇到的问题是我只想检索具有特定属性名称和值的 XML 节点!
XML 示例:
<Readers>
<Reader measurement="..." type="Mighty">
<IP reader="1">192.168.1.10</IP>
<IP reader="2">192.168.1.25</IP>
<IP reader="3">192.168.1.30</IP>
<IP reader="4">192.168.1.50</IP>
</Reader>
<Reader measurement="..." type="Standard">
...
</Reader>
</Readers>
我的尝试:
std::string GetNodeValue(std::string node, std::vector<std::pair<std::string,std::string>> &attributes)
{
pugi::xml_node xmlNode = m_xmlDoc.select_single_node(("//" + node).c_str()).node();
// get all attributes
pugi::xml_object_range<pugi::xml_attribute_iterator> nodeAttributes(xmlNode.attributes());
// logic to compare given attribute name:value pairs with parsed ones
// ...
}
有人可以帮助我或给我一个提示吗?! (可能使用 Lambda 表达式)
【问题讨论】:
-
那是有效的 XML 吗? :o