本文整理汇总了C++中QDomElement::localName方法的典型用法代码示例。如果您正苦于以下问题:C++ QDomElement::localName方法的具体用法?C++ QDomElement::localName怎么用?C++ QDomElement::localName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QDomElement
的用法示例。
在下文中一共展示了QDomElement::localName方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: loadSld
QgsFeatureRenderer* QgsFeatureRenderer::loadSld( const QDomNode &node, QgsWkbTypes::GeometryType geomType, QString &errorMessage )
{
QDomElement element = node.toElement();
if ( element.isNull() )
return nullptr;
// get the UserStyle element
QDomElement userStyleElem = element.firstChildElement( "UserStyle" );
if ( userStyleElem.isNull() )
{
// UserStyle element not found, nothing will be rendered
errorMessage = "Info: UserStyle element not found.";
return nullptr;
}
// get the FeatureTypeStyle element
QDomElement featTypeStyleElem = userStyleElem.firstChildElement( "FeatureTypeStyle" );
if ( featTypeStyleElem.isNull() )
{
errorMessage = "Info: FeatureTypeStyle element not found.";
return nullptr;
}
// use the RuleRenderer when more rules are present or the rule
// has filters or min/max scale denominators set,
// otherwise use the SingleSymbol renderer
bool needRuleRenderer = false;
int ruleCount = 0;
QDomElement ruleElem = featTypeStyleElem.firstChildElement( "Rule" );
while ( !ruleElem.isNull() )
{
ruleCount++;
// more rules present, use the RuleRenderer
if ( ruleCount > 1 )
{
QgsDebugMsg( "more Rule elements found: need a RuleRenderer" );
needRuleRenderer = true;
break;
}
QDomElement ruleChildElem = ruleElem.firstChildElement();
while ( !ruleChildElem.isNull() )
{
// rule has filter or min/max scale denominator, use the RuleRenderer
if ( ruleChildElem.localName() == "Filter" ||
ruleChildElem.localName() == "MinScaleDenominator" ||
ruleChildElem.localName() == "MaxScaleDenominator" )
{
QgsDebugMsg( "Filter or Min/MaxScaleDenominator element found: need a RuleRenderer" );
needRuleRenderer = true;
break;
}
ruleChildElem = ruleChildElem.nextSiblingElement();
}
if ( needRuleRenderer )
{
break;
}
ruleElem = ruleElem.nextSiblingElement( "Rule" );
}
QString rendererType;
if ( needRuleRenderer )
{
rendererType = "RuleRenderer";
}
else
{
rendererType = "singleSymbol";
}
QgsDebugMsg( QString( "Instantiating a '%1' renderer..." ).arg( rendererType ) );
// create the renderer and return it
QgsRendererAbstractMetadata* m = QgsRendererRegistry::instance()->rendererMetadata( rendererType );
if ( !m )
{
errorMessage = QString( "Error: Unable to get metadata for '%1' renderer." ).arg( rendererType );
return nullptr;
}
QgsFeatureRenderer* r = m->createRendererFromSld( featTypeStyleElem, geomType );
return r;
}
示例2: addSubElement
void Tv::addSubElement( QDomElement &element) {
if(element.localName().compare("Programme", Qt::CaseInsensitive)==0) {
Programme *cn = Programme::fromElement(element);
addProgramme(cn);
return;
}
if(element.localName().compare("Channel", Qt::CaseInsensitive)==0) {
Channel *cn = Channel::fromElement(element);
addChannel(cn);
return;
}
}
示例3: addSubElement
void Rating::addSubElement( QDomElement &element) {
if(element.localName().compare("Icon", Qt::CaseInsensitive)==0) {
Icon *cn = Icon::fromElement(element);
addIcon(cn);
return;
}
if(element.localName().compare("Value", Qt::CaseInsensitive)==0) {
Value *cn = Value::fromElement(element);
addValue(cn);
return;
}
}
示例4: element
QList<QDomElement> Entry::unhandledElements() const
{
// TODO: do not hardcode this list here
QList<ElementType> handled;
handled.append(ElementType(QLatin1String("author"), atom1Namespace()));
handled.append(ElementType(QLatin1String("contributor"), atom1Namespace()));
handled.append(ElementType(QLatin1String("category"), atom1Namespace()));
handled.append(ElementType(QLatin1String("id"), atom1Namespace()));
handled.append(ElementType(QLatin1String("link"), atom1Namespace()));
handled.append(ElementType(QLatin1String("rights"), atom1Namespace()));
handled.append(ElementType(QLatin1String("source"), atom1Namespace()));
handled.append(ElementType(QLatin1String("published"), atom1Namespace()));
handled.append(ElementType(QLatin1String("updated"), atom1Namespace()));
handled.append(ElementType(QLatin1String("summary"), atom1Namespace()));
handled.append(ElementType(QLatin1String("title"), atom1Namespace()));
handled.append(ElementType(QLatin1String("content"), atom1Namespace()));
QList<QDomElement> notHandled;
QDomNodeList children = element().childNodes();
for (int i = 0; i < children.size(); ++i)
{
QDomElement el = children.at(i).toElement();
if (!el.isNull()
&& !handled.contains(ElementType(el.localName(), el.namespaceURI())))
{
notHandled.append(el);
}
}
return notHandled;
}
示例5: loadAnnotations
void Reader::loadAnnotations(const QDomElement& annotations)
{
QDomNodeList nodes = annotations.childNodes();
for(int n=0;n<nodes.count();++n) {
QDomElement e = nodes.at(n).toElement();
if(e.isNull())
continue;
if(e.namespaceURI()==DP_NAMESPACE && e.localName()=="a") {
_commands.append(MessagePtr(new protocol::AnnotationCreate(
0,
++_annotationid,
e.attribute("x").toInt(),
e.attribute("y").toInt(),
e.attribute("w").toInt(),
e.attribute("h").toInt()
)));
_commands.append(MessagePtr(new protocol::AnnotationEdit(
_annotationid,
e.attribute("bg").mid(1).toUInt(0,16),
e.text()
)));
} else {
qWarning() << "unhandled annotations (DP ext.) element:" << e.tagName();
}
}
}
示例6: scanForElements
void XSchemaSequence::scanForElements(QDomElement &element, void * /*context*/)
{
QString name = element.localName();
if(element.prefix() == _root->namespacePrefix()) {
if(name == IO_XSD_ANNOTATION) {
readHandleAnnotation(element);
return;
} else if(name == IO_XSD_TAGELEMENT) {
readHandleObject(element, new XSchemaElement(this, _root));
return ;
} else if(name == IO_XSD_GROUP) {
readHandleObject(element, new XSchemaGroup(this, _root));
return ;
} else if(name == IO_XSD_CHOICE) {
readHandleObject(element, new XSchemaChoice(this, _root));
return ;
} else if(name == IO_XSD_SEQUENCE) {
readHandleObject(element, new XSchemaSequence(this, _root));
return ;
} else if(name == IO_XSD_ANY) {
readHandleObject(element, new XSchemaAny(this, _root));
return ;
}
}
raiseError(this, element, true);
}
示例7: dublinCoreNamespace
QList<QDomElement> Item::unhandledElements() const
{
// TODO: do not hardcode this list here
QList<ElementType> handled;
handled.append(ElementType(QLatin1String("title")));
handled.append(ElementType(QLatin1String("link")));
handled.append(ElementType(QLatin1String("description")));
handled.append(ElementType(QLatin1String("pubDate")));
handled.append(ElementType(QLatin1String("expirationDate")));
handled.append(ElementType(QLatin1String("rating")));
handled.append(ElementType(QLatin1String("source")));
handled.append(ElementType(QLatin1String("guid")));
handled.append(ElementType(QLatin1String("comments")));
handled.append(ElementType(QLatin1String("author")));
handled.append(ElementType(QLatin1String("date"), dublinCoreNamespace()));
QList<QDomElement> notHandled;
QDomNodeList children = element().childNodes();
for (int i = 0; i < children.size(); ++i)
{
QDomElement el = children.at(i).toElement();
if (!el.isNull()
&& !handled.contains(ElementType(el.localName(), el.namespaceURI())))
{
notHandled.append(el);
}
}
return notHandled;
}
示例8: addSubElement
void Subtitles::addSubElement( QDomElement &element) {
if(element.localName().compare("Language", Qt::CaseInsensitive)==0) {
Language *cn = Language::fromElement(element);
addLanguage(cn);
return;
}
}
示例9: childElementsByTagNameNS
/**
* \brief obtain direct child elements of a certain kind. unlike
* elementsByTagNameNS, this function does not descend beyond the first
* level of children.
* \param e parent element
* \param nsURI namespace of the elements to find
* \param localName local name of the elements to find
* \return the node list of found elements (empty list if none are found)
*/
XDomNodeList childElementsByTagNameNS(const QDomElement &e, const QString &nsURI, const QString &localName)
{
XDomNodeList out;
for(QDomNode n = e.firstChild(); !n.isNull(); n = n.nextSibling()) {
if(!n.isElement())
continue;
QDomElement i = n.toElement();
if(i.namespaceURI() == nsURI && i.localName() == localName)
out.append(i);
}
return out;
}
示例10: scanForElements
void XSchemaSimpleTypeUnion::scanForElements(QDomElement &element, void * /*context*/)
{
QString name = element.localName();
if(element.prefix() == _root->namespacePrefix()) {
if(name == IO_XSD_ANNOTATION) {
readHandleAnnotation(element);
} else if(name == IO_XSD_SIMPLETYPE) {
readHandleObject(element, new XSchemaElement(this, _root));
} else {
raiseError(this, element, true);
}
} else {
raiseError(this, element, true);
}
}
示例11: stripExtraNS
// stripExtraNS
//
// This function removes namespace information from various nodes for
// display purposes only (the element is pretty much useless for processing
// after this). We do this because QXml is a bit overzealous about outputting
// redundant namespaces.
static QDomElement stripExtraNS(const QDomElement &e)
{
// find closest parent with a namespace
QDomNode par = e.parentNode();
while(!par.isNull() && par.namespaceURI().isNull())
par = par.parentNode();
bool noShowNS = false;
if(!par.isNull() && par.namespaceURI() == e.namespaceURI())
noShowNS = true;
// build qName (prefix:localName)
QString qName;
if(!e.prefix().isEmpty())
qName = e.prefix() + ':' + e.localName();
else
qName = e.tagName();
QDomElement i;
int x;
if(noShowNS)
i = e.ownerDocument().createElement(qName);
else
i = e.ownerDocument().createElementNS(e.namespaceURI(), qName);
// copy attributes
QDomNamedNodeMap al = e.attributes();
for(x = 0; x < al.count(); ++x) {
QDomAttr a = al.item(x).cloneNode().toAttr();
// don't show xml namespace
if(a.namespaceURI() == NS_XML)
i.setAttribute(QString("xml:") + a.name(), a.value());
else
i.setAttributeNodeNS(a);
}
// copy children
QDomNodeList nl = e.childNodes();
for(x = 0; x < nl.count(); ++x) {
QDomNode n = nl.item(x);
if(n.isElement())
i.appendChild(stripExtraNS(n.toElement()));
else
i.appendChild(n.cloneNode());
}
return i;
}
示例12: getUserDefines
XmlConfig getUserDefines() const
{
XmlConfig cfg;
QDomElement root = domDocument.documentElement();
QDomElement child;
if (!root.isNull()) {
child = root.firstChildElement();
while (!child.isNull()) {
std::string name = (const char*)child.localName().toAscii();
std::string value = (const char*)child.text().toUtf8();
if (std::find(filter.begin(), filter.end(), name) != filter.end())
cfg[name] = value;
child = child.nextSiblingElement();
}
}
return cfg;
}
示例13: firstElementByTagNameNS
QDomElement ElementWrapper::firstElementByTagNameNS(const QString& nsURI, const QString& localName) const
{
if (isNull())
return QDomElement();
for (QDomNode n = d->element.firstChild(); !n.isNull(); n = n.nextSibling())
{
if (n.isElement())
{
QDomElement e = n.toElement();
if (e.localName() == localName && e.namespaceURI() == nsURI)
return e;
}
}
return QDomElement();
}
示例14:
QList<QDomElement> ElementWrapper::elementsByTagNameNS(const QString& nsURI, const QString& localName) const
{
if (isNull())
return QList<QDomElement>();
QList<QDomElement> elements;
for (QDomNode n = d->element.firstChild(); !n.isNull(); n = n.nextSibling())
{
if (n.isElement())
{
QDomElement e = n.toElement();
if (e.localName() == localName && e.namespaceURI() == nsURI)
elements.append(e);
}
}
return elements;
}
示例15: if
QgsFeatureRendererV2* QgsSingleSymbolRendererV2::createFromSld( QDomElement& element, Qgis::GeometryType geomType )
{
// XXX this renderer can handle only one Rule!
// get the first Rule element
QDomElement ruleElem = element.firstChildElement( "Rule" );
if ( ruleElem.isNull() )
{
QgsDebugMsg( "no Rule elements found!" );
return nullptr;
}
QString label, description;
QgsSymbolLayerV2List layers;
// retrieve the Rule element child nodes
QDomElement childElem = ruleElem.firstChildElement();
while ( !childElem.isNull() )
{
if ( childElem.localName() == "Name" )
{
// <se:Name> tag contains the rule identifier,
// so prefer title tag for the label property value
if ( label.isEmpty() )
label = childElem.firstChild().nodeValue();
}
else if ( childElem.localName() == "Description" )
{
// <se:Description> can contains a title and an abstract
QDomElement titleElem = childElem.firstChildElement( "Title" );
if ( !titleElem.isNull() )
{
label = titleElem.firstChild().nodeValue();
}
QDomElement abstractElem = childElem.firstChildElement( "Abstract" );
if ( !abstractElem.isNull() )
{
description = abstractElem.firstChild().nodeValue();
}
}
else if ( childElem.localName() == "Abstract" )
{
// <sld:Abstract> (v1.0)
description = childElem.firstChild().nodeValue();
}
else if ( childElem.localName() == "Title" )
{
// <sld:Title> (v1.0)
label = childElem.firstChild().nodeValue();
}
else if ( childElem.localName().endsWith( "Symbolizer" ) )
{
// create symbol layers for this symbolizer
QgsSymbolLayerV2Utils::createSymbolLayerV2ListFromSld( childElem, geomType, layers );
}
childElem = childElem.nextSiblingElement();
}
if ( layers.isEmpty() )
return nullptr;
// now create the symbol
QgsSymbolV2 *symbol;
switch ( geomType )
{
case Qgis::Line:
symbol = new QgsLineSymbolV2( layers );
break;
case Qgis::Polygon:
symbol = new QgsFillSymbolV2( layers );
break;
case Qgis::Point:
symbol = new QgsMarkerSymbolV2( layers );
break;
default:
QgsDebugMsg( QString( "invalid geometry type: found %1" ).arg( geomType ) );
return nullptr;
}
// and finally return the new renderer
return new QgsSingleSymbolRendererV2( symbol );
}