Python 使用名称空间解析XML时出现问题
嗨,我有一个我想解析的xml文件,它看起来像这样Python 使用名称空间解析XML时出现问题,python,xml,parsing,lxml,xml-parsing,Python,Xml,Parsing,Lxml,Xml Parsing,嗨,我有一个我想解析的xml文件,它看起来像这样 <?xml version="1.0" encoding="utf-8"?> <SHOP xmlns="http://www.w3.org/1999/xhtml" xmlns:php="http://php.net/xsl"> <SHOPITEM> <ID>2332</ID> ... </SHOPITEM> <SH
<?xml version="1.0" encoding="utf-8"?>
<SHOP xmlns="http://www.w3.org/1999/xhtml" xmlns:php="http://php.net/xsl">
<SHOPITEM>
<ID>2332</ID>
...
</SHOPITEM>
<SHOPITEM>
<ID>4433</ID>
...
</SHOPITEM>
</SHOP>
但该项仅在xml容器中打印
<SHOP xmlns="http://www.w3.org/1999/xhtml" xmlns:php="http://php.net/xsl">
看起来像
<SHOP>
如何解析xml文档而不必担心此容器定义?有关lxml.etree如何处理名称空间的说明,请参阅。一般来说,你应该与他们合作,而不是试图避免他们。在这种情况下,写下:
for item in file_data.iter('{http://www.w3.org/1999/xhtml}SHOPITEM'):
如果需要经常引用命名空间,请设置局部变量:
xhtml_ns = '{http://www.w3.org/1999/xhtml}'
...
for item in file_data.iter(xhtml_ns + 'SHOPITEM'):
xhtml_ns = '{http://www.w3.org/1999/xhtml}'
...
for item in file_data.iter(xhtml_ns + 'SHOPITEM'):