Практика по дисциплине "Современные методы сбора, хранения и обработки информации"

Опубликовано пользователем Бессонов Л.В. 10.03.2015г.

Дисципина ориентирована на обучающихся по ДОП «Экспертная оценка достоверности информации в области правового регулирования и правоприменения».

  1. # coding: utf8
  2.  
  3. xml = &#39;&#39;&#39;<?xml version="1.0" encoding="UTF-8"?>
  4.  
  5.  
  6.  
  7. What is your name?
  8.  
  9.  
  10. ABC?
  11.  
  12.  
  13. &#39;&#39;&#39;
  14.  
  15. from lxml import etree
  16.  
  17. tree = etree.XML(xml) # Парсинг строки
  18. #tree = etree.parse(&#39;1.xml&#39;) # Парсинг файла
  19.  
  20. nodes = tree.xpath(&#39;/Test/Questions/Question&#39;) # Открываем раздел
  21. for node in nodes: # Перебираем элементы
  22. print node.tag,node.keys(),node.values()
  23. print &#39;name =&#39;,node.get(&#39;type&#39;) # Выводим параметр name
  24. print &#39;text =&#39;,[node.text] # Выводим текст элемента
  25.  
  26. # Доступ к тексту напрямую, с указанием фильтра
  27. print &#39;text1&#39;,tree.xpath(&#39;/Test/Questions/Question[@type=&quot;control&quot;]/text()&#39;)
  28. print &#39;text2&#39;,tree.xpath(&#39;/Test/Questions/Question[2]/text()&#39;)
  29. # Доступ к параметру напрямую
  30. print &#39;dist&#39;,tree.xpath(&#39;/Test/Questions/Question[@type=&quot;control&quot;]&#39;)[0].get(&#39;starttime&#39;)
  31. # Выборка по ключу
  32. print &#39;dist by key&#39;,tree.xpath(&#39;//*[@type=&quot;control&quot;]&#39;)[0].get(&#39;starttime&#39;)
  33.  
  34. print &#39;iterfind:&#39;
  35. for node in tree.iterfind(&#39;.//Question&#39;): # поиск элементов
  36. print node.get(&#39;type&#39;)
  37.  
  38. # Рекурсивный перебор элементов
  39. print &#39;recursiely:&#39;
  40. def getn(node):
  41. print node.tag,node.keys()
  42. for n in node:
  43. getn(n)
  44. getn(tree.getroottree().getroot())

Баннер SGU.RU