std::string XmlHandler::get_text_from_tag(const std::string &xpath) { Poco::XML::NodeIterator it(pDoc, Poco::XML::NodeFilter::SHOW_ELEMENT); Poco::XML::Node *pNode = it.nextNode(); Poco::XML::Node *detectorNode = pNode->getNodeByPath(xpath); std::string value; if (detectorNode) value = detectorNode->innerText(); return value; }
std::map<std::string, std::string> XmlHandler::get_attributes_from_tag(const std::string &xpath) { std::map<std::string, std::string> attributes_map; Poco::XML::NodeIterator it(pDoc, Poco::XML::NodeFilter::SHOW_ELEMENT); Poco::XML::Node *pNode = it.nextNode(); Poco::XML::Node *detectorNode = pNode->getNodeByPath(xpath); if (detectorNode) { Poco::XML::NamedNodeMap *attributes = detectorNode->attributes(); for (unsigned int i = 0; i < attributes->length(); i++) { Poco::XML::Node *attribute = attributes->item(i); attributes_map.emplace(attribute->nodeName(), attribute->nodeValue()); } } return attributes_map; }