Учитывая следующий XML:XML блок Анализировать с LXML
<language>en-US</language>
<provider>VenturesLLC</provider>
<video>
<original_spoken_locale>en-US</original_spoken_locale>
<vendor_offer_code>TEST_VENDOR</vendor_offer_code>
<release_date>2011-01-15</release_date>
<title>Moving Forward</title>
<vendor_id>ASDF_ING_2012</vendor_id>
</video>
Я ищу, чтобы получить колодку весь<video>
. Однако, когда я делаю:
>>> f=open('metadata.xml')
>>> contents=f.read()
>>> node=etree.fromstring(contents)
>>> node.xpath("//*[local-name()='video']")[0].text
'\n
Обратите внимание, что если бы я сделал что-то вроде node.xpath("//*[local-name()='original_spoken_locale']")[0].text
я получаю правильное значение 'en-US'
. Как бы я тяну этот полный текст, так что я могу получить:
text = """
<video>
<original_spoken_locale>en-US</original_spoken_locale>
<vendor_offer_code>TEST_VENDOR</vendor_offer_code>
<release_date>2011-01-15</release_date>
<title>Moving Forward</title>
<vendor_id>ASDF_ING_2012</vendor_id>
</video>"""
Вы можете использовать 'node.text_content()', чтобы получить весь текст ниже узла в виде одной строки, или 'node.itertext()' перебрать содержимое каждого текстового узла индивидуально. – spiralx