是否可以获取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