2010-06-10 80 views

回答

7

您可以使用函数获得的属性的特定值,

QString QDomElement::attribute (const QString & name, const QString & defValue = QString()) const 

要获得所有属性使用,

QDomNamedNodeMap QDomElement::attributes() const 

,你必须遍历通过DomNamedNodeMap并获取每个属性的值。希望能帮助到你。

编辑:试试这个。

有了你有给QDomNamedNodeMap,

QDomNode QDomNamedNodeMap::item (int index) const 

将返回一个QDomNode的特定属性。 然后给,

QDomAttr QDomNode::toAttr() const 

随着QDomAttr获得给,

QString name() const 

将返回属性的名称。 希望它有帮助。

+0

它返回一个DomNamedNodeMap,我看不出它是如何帮助我检索字符串(“名称”)和(“ID”),我不想这些属性的值。我只想要属性名称。 – 2010-06-12 20:06:41

0

这是为C++。我遇到了同样的问题。您需要转换为QDomAttr。我相信API在python中是一样的。

if(Node.hasAttributes()) 
{ 
    QDomNamedNodeMap map = Node.attributes(); 
    for(int i = 0 ; i < map.length() ; ++i) 
    { 
     if(!(map.item(i).isNull())) 
     { 
      QDomNode debug = map.item(i); 
      QDomAttr attr = debug.toAttr(); 
      if(!attr.isNull()) 
      { 
       cout << attr.value().toStdString(); 
       cout << attr.name().toStdString(); 
      } 
    } 
} 
2

如何获得第一属性名称/值在PySide/PyQt的:

if node.hasAttributes(): 
    nodeAttributes = node.attributes() 
    attributeItem = nodeAttributes.item(0) #pulls out first item 
    attribute = attributeItem.toAttr() 
    attributeName = attr.name() 
    attributeValue = attr.value() 

这只是说明如何获取一个名称/值对,但它应该是很容易与nodeAttributes.length()延长循环或类似的东西。

相关问题