2

I have been noticing a little issue with lxml.objetify. I am getting XLM as a string. The XLM presents an structure like shown down below:

<?xml version="1.0" ?>
<ItemResponse>
    <Items>
        <Item>
            <id>1</id>
            <properties>Item 1 properties cames here</properties>
        </Item>
        <Item>
            <id>2</id>
            <properties>Item 2 properties cames here</properties>
        </Item>

        <Item>
            <id>3</id>
            <properties>Item 3 properties cames here</properties>
        </Item>
    </Items>
</ItemResponse>

Well, assuming the xml as a string is stored in 'r' variable, When I use the following function:

obj = lxml.objetify.fromstring(r)

The obj objects appear like:

obj
|--Items
     |--Item
          |--id = 1
          |--properties = 'Item 1 properties cames here'

As can be seen, I am missing the other two items. Do you know how to get all the XML as object?

Mukyuu
  • 6,436
  • 8
  • 40
  • 59
manespgav
  • 167
  • 1
  • 9

1 Answers1

1

I just found the answer, In order to help people with the same issue, I will post the answer here.

To access to every children of Item tag, you can access like a list. The easiest way I just found is the following

for item in obj.Items:
    # Do something with item object/element
    print('Id: '  + str(item.id) + ' Properties: ' + item.properties)
manespgav
  • 167
  • 1
  • 9