python删除包含名称空间的元素
我试图删除xml中包含名称空间的元素。 这是我的密码:python删除包含名称空间的元素,python,xml,parsing,lxml,xml-namespaces,Python,Xml,Parsing,Lxml,Xml Namespaces,我试图删除xml中包含名称空间的元素。 这是我的密码: templateXml = """<?xml version="1.0" encoding="UTF-8"?> <Metadata xmlns="http://www.amazon.com/UnboxMetadata/v1"> <Movie> <CountryOfOrigin>US</CountryOfOrigin> <TitleInfo>
templateXml = """<?xml version="1.0" encoding="UTF-8"?>
<Metadata xmlns="http://www.amazon.com/UnboxMetadata/v1">
<Movie>
<CountryOfOrigin>US</CountryOfOrigin>
<TitleInfo>
<Title locale="en-GB">The Title</Title>
<Actor>
<ActorName locale="en-GB">XXX</ActorName>
<Character locale="en-GB">XXX</Character>
</Actor>
</TitleInfo>
</Movie>
</Metadata>"""
from lxml import etree
tree = etree.fromstring(templateXml)
namespaces = {'ns':'http://www.amazon.com/UnboxMetadata/v1'}
for checkActor in tree.xpath('//ns:Actor', namespaces=namespaces):
etree.strip_elements(tree, 'ns:Actor')
templateXml=”“”
美国
标题
XXX
XXX
"""
从lxml导入etree
tree=etree.fromstring(templateXml)
名称空间={'ns':'http://www.amazon.com/UnboxMetadata/v1'}
对于tree.xpath('//ns:Actor',namespaces=namespaces)中的checkActor:
etree.strip_元素(树'ns:Actor')
在我的实际XML中,我有很多标记,因此我尝试搜索包含XXX的Actor标记,并完全删除整个标记及其内容。但它不起作用。使用方法:
印刷品:
<?xml version='1.0' encoding='ASCII'?>
<Metadata xmlns="http://www.amazon.com/UnboxMetadata/v1">
<Movie>
<CountryOfOrigin>US</CountryOfOrigin>
<TitleInfo>
<Title locale="en-GB">The Title</Title>
</TitleInfo>
</Movie>
</Metadata>
美国
标题
<?xml version='1.0' encoding='ASCII'?>
<Metadata xmlns="http://www.amazon.com/UnboxMetadata/v1">
<Movie>
<CountryOfOrigin>US</CountryOfOrigin>
<TitleInfo>
<Title locale="en-GB">The Title</Title>
</TitleInfo>
</Movie>
</Metadata>