2010-06-10 109 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()延長循環或類似的東西。

相關問題