使用 LXML 解析获取 XML 文件的节点属性
getting the node attribute of an XML file with LXML parsing
我无法解决这个问题,也无法正常工作:
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"
请问我做错了什么?
XML_tree
表示根元素(具有 xml:lang
属性的 <div>
)。
如果要获取语言,请使用以下命令:
lang = XML_tree.xpath('@xml:lang')
你可以 xpath(@xml:lang)
.
XML_tree = etree.fromstring(data.encode() , parser=parser)
lang = XML_tree.xpath('@xml:lang')
print(lang)
Output:
['ja']
我无法解决这个问题,也无法正常工作:
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"请问我做错了什么?
XML_tree
表示根元素(具有 xml:lang
属性的 <div>
)。
如果要获取语言,请使用以下命令:
lang = XML_tree.xpath('@xml:lang')
你可以 xpath(@xml:lang)
.
XML_tree = etree.fromstring(data.encode() , parser=parser)
lang = XML_tree.xpath('@xml:lang')
print(lang)
Output:
['ja']