Russian Qt Forum
Май 03, 2024, 15:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как получить список всех параметров текущего тэга?  (Прочитано 6193 раз)
Пытон
Гость
« : Январь 26, 2014, 15:40 »

Код
Python
file = QtCore.QFile("1.xml")
dom = QtXml.QDomDocument()
dom.setContent(file)
root = dom.documentElement()
 
child = root.firstChildElement()
while not child.isNull():
   print(child.tagName(), child.attribute("ID", ""), child.attribute("FAM", ""))
   child = child.nextSiblingElement()
 

А как мне заполучить список всех параметров (ID, FAM, IM, OT и др), которые есть у текущего тэга, чтобы не перечислять их все вручную? Мне надо открыть xml-ку и показать её пользователю в виде таблички. Все имеющиеся в нём атрибуты к тэгам я могу и не знать.
Шарил, шарил по справке, по интернету - ничего не нашёл. Слабое знание английского не способствует.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #1 : Январь 26, 2014, 15:47 »

QDomNamedNodeMap QDomElement::attributes() const

Returns a QDomNamedNodeMap containing all this element's attributes.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Пытон
Гость
« Ответ #2 : Январь 26, 2014, 17:56 »

Абсолютно ни о чём мне это не говорит. Как их выдрать-то оттуда?
for i in child.attributes() - не работает! Объект не поддерживает итерации, говорит.
b = child.attributes()
print(b.item(2) - выдаёт мне название объекта, типа PyQt4.QtXml.QDomNode object at 0x0332CD88

Как же их выдрать-то, наименование параметров?
Зубами их щаз драть буду!!! Злой
Записан
Пытон
Гость
« Ответ #3 : Январь 26, 2014, 18:01 »

А список всех  тэгов мне тоже ведь нужно получать...
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #4 : Январь 26, 2014, 18:05 »

посмотри на доступные методы у QDomNamedNodeMap, там есть всё, что нужно. а стандартное перечисление элементов не поддерживается, да.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Пытон
Гость
« Ответ #5 : Январь 26, 2014, 18:19 »

Товарищ джедай, просто напиши мне недогоняющему как я могу заполучить список имён параметров.

Да хоть одно имя параметра по индексу!
parameterName = child.attributes().item(3)  - это НЕ работает!

countOfParameters = child.attributes().length() - это РАБОТАЕТ! Но нафиг мне кол-во параметров, если я их названия не могу заполучить?


« Последнее редактирование: Январь 26, 2014, 18:23 от Пытон » Записан
Пытон
Гость
« Ответ #6 : Январь 26, 2014, 18:28 »

Нашёл, тудыт-растудыт!
parameterName = child.attributes().item(3).nodeName()
Застрелить qt из гаубицы!  Злой
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.076 секунд. Запросов: 23.