是否可以獲取pyqt中特定節點的所有屬性? 例如..考慮以下節點:
< asset Name="3dAsset" ID="5"/>
我要檢索的(「名稱」和「ID」)的字符串
這可能嗎?如何獲取特定xml節點的所有屬性qt
在此先感謝
是否可以獲取pyqt中特定節點的所有屬性? 例如..考慮以下節點:
< asset Name="3dAsset" ID="5"/>
我要檢索的(「名稱」和「ID」)的字符串
這可能嗎?如何獲取特定xml節點的所有屬性qt
在此先感謝
您可以使用函數獲得的屬性的特定值,
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
將返回屬性的名稱。 希望它有幫助。
這是爲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();
}
}
}
如何獲得第一屬性名稱/值在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()
延長循環或類似的東西。
它返回一個DomNamedNodeMap,我看不出它是如何幫助我檢索字符串(「名稱」)和(「ID」),我不想這些屬性的值。我只想要屬性名稱。 – 2010-06-12 20:06:41