Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用名称空间解析XML时出现问题_Python_Xml_Parsing_Lxml_Xml Parsing - Fatal编程技术网

Python 使用名称空间解析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文件,它看起来像这样

<?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'):