可以在pyqt中获取特定节点的所有属性吗?例如..考虑以下节点:
< asset Name="3dAsset" ID="5"/>
我想检索("Name“和"ID")字符串
有可能吗?
提前感谢
发布于 2010-06-10 19:20:40
您可以使用函数检索属性的特定值,
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它将返回属性的名称。希望能有所帮助。
发布于 2014-08-20 03:34:57
如何在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()或类似的东西扩展循环应该足够简单。
发布于 2013-07-29 17:06:16
这是为c++准备的。我遇到了同样的问题。您需要转换为QDomAttr。我相信在python中API也是一样的。
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();
}
}
}https://stackoverflow.com/questions/3013311
复制相似问题