finding elements by attribute with lxml

前端 未结 2 820
轮回少年
轮回少年 2021-01-30 12:40

I need to parse a xml file to extract some data. I only need some elements with certain attributes, here\'s an example of document:


    

        
2条回答
  •  南方客
    南方客 (楼主)
    2021-01-30 13:10

    You can use xpath, e.g. root.xpath("//article[@type='news']")

    This xpath expression will return a list of all

    elements with "type" attributes with value "news". You can then iterate over it to do what you want, or pass it wherever.

    To get just the text content, you can extend the xpath like so:

    root = etree.fromstring("""
    
        
            
    some text
    some text
    some text
    """) print root.xpath("//article[@type='news']/content/text()")

    and this will output ['some text', 'some text']. Or if you just wanted the content elements, it would be "//article[@type='news']/content" -- and so on.

提交回复
热议问题