本文整理汇总了C++中poco::xml::Element::attributes方法的典型用法代码示例。如果您正苦于以下问题:C++ Element::attributes方法的具体用法?C++ Element::attributes怎么用?C++ Element::attributes使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类poco::xml::Element
的用法示例。
在下文中一共展示了Element::attributes方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: removeAttributes
bool ofXml::removeAttributes(const string& path)
{
Poco::XML::Element *e;
if(element) {
if(path.find("[@") == string::npos) {
// we need to create a proper path
string attributePath = "[@" + path + "]";
e = (Poco::XML::Element*) element->getNodeByPath(attributePath);
} else {
e = (Poco::XML::Element*) element->getNodeByPath(path);
}
} else {
ofLogWarning("ofXml") << "clearAttributes(): no element set yet";
return false;
}
if(e) {
Poco::XML::NamedNodeMap *map = e->attributes();
for(unsigned long i = 0; i < map->length(); i++) {
e->removeAttribute(map->item(i)->nodeName());
}
map->release();
return true;
}
return false;
}
示例2: removeAttribute
bool ofXml::removeAttribute(const string& path)
{
string attributeName, pathToAttribute;
Poco::XML::Element *e;
if(element) {
bool hasPath = false;
// you can pass either /node[@attr] or just attr
if(path.find("[@") != string::npos)
{
int attrBegin = path.find("[@");
int start = attrBegin + 2;
int end = path.find("]", start);
attributeName = path.substr( start, end - start );
pathToAttribute = path.substr(0, attrBegin);
hasPath = true;
}
else
{
attributeName = path;
}
if(hasPath) {
e = (Poco::XML::Element*) element->getNodeByPath(pathToAttribute);
} else {
e = element;
}
} else {
ofLogWarning("ofXml") << "clearAttributes(): no element set yet";
return false;
}
if(e) {
Poco::XML::NamedNodeMap *map = e->attributes();
for(unsigned long i = 0; i < map->length(); i++) {
if(map->item(i)->nodeName() == attributeName) {
e->removeAttribute(map->item(i)->nodeName());
}
}
map->release();
return true;
}
return false;
}