Как правильно парсить XML с xml.dom.minidom?

Пытаюсь распарсить XML с помощью minidom.
Возникло несколько вопросов:
1. Как можно выбирать Тег в Теге, например есть структура:
<tag1>
 <tag2></tag2> 
<tag1>
<tag1>
 <tag3></tag3>
</tag1>
<tag2></tag2>

Как мне получить доступ к tag2 внутри tag1? Пробовал нечто вроде:
a = doc.getElementsByTagName("tag1 > tag 2")
a = doc.getElementsByTagName("tag1  tag 2")

2. Правильно я понимаю, что лучший способ получить значение внутри тэга это:
print(a.childNodes[0].nodeValue)
3. Мне нужно вставить результаты парсинга в csv. Мой план такой
- Получаю список интересующих меня нодов (около 100 нодов одинаковой структуры)
- Обрабатываю нод и загоняю интересующие меня цифры в массив [ .. ]
- Перед переходом к след. ноду загоняю массив из п. выше в новый массив (итоговый)
- Затем каждый элемент из массива выше вставляю в csv + разделитель
Хороший ли это вариант или лучше сделать по-другому?
4. for по нодам работает на внутренние уровни? Например есть структура:
<tag1>
 <tag2>
  <tag3></tag3>
 </tag2>
 <tag4>
 </tag4>
</tag1>

если я сделаю for по элементам ноды tag1, пройдет ли цикл по tag3 или только по tag2 и tag4 ?

Спасибо за ответы
  • Вопрос задан
  • 175 просмотров
Пригласить эксперта
Ответы на вопрос 1
@grinat
getEltmentsByTagName("tag1 tag 2") тебе ничего не вернет, это выбор уже по xpath, а не по тэгу.
getEltmentsByTagName("tag1") и затем перебирать все ноды и у них вытаскивать уже следующий тэг.
Либо ищи в либе методы для выборки по xpath либо по css селекторам.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы