1
У меня возникают проблемы синтаксического анализа XML, когда он находится в форме:Синтаксический вложенная XML с LXML и Python
<Cars>
<Car>
<Color>Blue</Color>
<Make>Ford</Make>
<Model>Mustant</Model>
</Car>
<Car>
<Color>Red</Color>
<Make>Chevy</Make>
<Model>Camaro</Model>
</Car>
</Cars>
Я понял, как разобрать 1-го ребенка уровня, как это:
<Car>
<Color>Blue</Color>
<Make>Chevy</Make>
<Model>Camaro</Model>
</Car>
С такого кода:
from lxml import etree
a = os.path.join(localPath,file)
element = etree.parse(a)
cars = element.xpath('//Root/Foo/Bar/Car/node()[text()]')
parsedCars = [{field.tag: field.text for field in cars} for action in cars]
print parsedCars[0]['Make'] #Chevy
Как я могу разобрать наши несколько тегов «автомобиль», который является дочерним тегом «Тачки»?
Когда я запускаю этот код, чтобы найти цвет, я получаю адрес, а не фактический объект. Например, при поиске цвета я получаю [<Цвет элемента в 0x2a9f0f8>] – lodkkx
Они возвращают элемент-элемент. Чтобы получить текст, используйте xpath './Color/text() '' – Dikei
. Да, я действительно понял это, но вместо этого использовал' ./Color/node(). В чем разница между ними - они оба дают мне текст. – lodkkx