【问题标题】:getting the node attribute of an XML file with LXML parsing使用 LXML 解析获取 XML 文件的节点属性
【发布时间】:2021-09-07 17:08:57
【问题描述】:

我无法解决这个问题,也无法正常工作:

data='''<?xml version="1.0" encoding="UTF-8"?>\n<div type="docs" xml:base="/kime-api/prod/api/emi/2" xml:lang="ja" xml:id="39532e30"> <div n="0001" type="doc" xml:id="_5738d00002"></div></div>'''

parser = etree.XMLParser(resolve_entities=False, strip_cdata=False, recover=True, ns_clean=True)
 
# I tried with and without this following line
#data = data.replace('<?xml version="1.0" encoding="UTF-8"?>','')

XML_tree = etree.fromstring(data.encode() , parser=parser)
lang = XML_tree.xpath('.//div[@xml:lang]')
lang

lang 是一个空列表,并且在 XML 中有一个元素,例如:xml:lang="ja"。

请问我做错了什么?

【问题讨论】:

    标签: python xml parsing lxml elementtree


    【解决方案1】:

    你可以这样做xpath(@xml:lang)

    XML_tree = etree.fromstring(data.encode() , parser=parser)
    lang = XML_tree.xpath('@xml:lang')
    print(lang)
    
    Output:
    
    ['ja']
    

    【讨论】:

      【解决方案2】:

      XML_tree 表示根元素(带有xml:lang 属性的&lt;div&gt;)。

      如果要获取语言,请使用以下内容:

      lang = XML_tree.xpath('@xml:lang')
      

      【讨论】:

        猜你喜欢
        • 2011-12-06
        • 1970-01-01
        • 1970-01-01
        • 2013-03-15
        • 2014-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-14
        相关资源
        最近更新 更多