AttributeError: нет такого потомка: - Lxml objectify - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь извлечь координаты из файла KML.Тем не менее, я получаю эту ошибку:

for e in doc.Document.Folder.Placemark:
  File "src\lxml\objectify.pyx", line 230, in lxml.objectify.ObjectifiedElement.__getattr__
  File "src\lxml\objectify.pyx", line 450, in lxml.objectify._lookupChildOrRaise
AttributeError: no such child: {http://www.opengis.net/kml/2.2}Placemark

Мой код для извлечения координат выглядит следующим образом:

kml_file = path.join(fileName_kml)

           with open(kml_file) as f:
               doc = parser.parse(f).getroot()
            for e in doc.Document.Folder.Placemark:
                 coor = e.Point.coordinates.text.split(',')
                 print(coor)

Не совсем уверен, что делать или как это исправить.

РЕДАКТИРОВАТЬ: Это первый бит моего файла kml.Я также ОЧЕНЬ новичок в Python, так что я действительно не понимаю attritubes, детей и прочее.Так что ansers как можно более информативным будет хорошо, спасибо.

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <name>loc</name>
    <description/>
    <Style id="poly-000000-1200-77-nodesc-normal">
      <LineStyle>

Вот что такое:

 <Folder>
      <name>Untitled layer</name>
      <Placemark>
        <name>loc</name>
        <styleUrl>#poly-000000-1200-77-nodesc</styleUrl>
        <Polygon>
          <outerBoundaryIs>
            <LinearRing>
              <tessellate>1</tessellate>
              <coordinates>
                -1.0947725,53.9600505,0
                -1.0967252,53.95697,0
                -1.0909316,53.9562629,0
                -1.0887214,53.9598864,0
                -1.0947725,53.9600505,0
              </coordinates>
            </LinearRing>
          </outerBoundaryIs>
        </Polygon>
      </Placemark>
    </Folder>
...