これは、ElementTree を使用して XML を変更するための質問の続きです
XML に名前空間があり、「ElementTree」を介して Python で名前空間を使用して XML を解析するで答えを理解しようとしましたが、次のようになりました。
XML ファイル。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<grandParent>
<parent>
<child>Sam/Astronaut</child>
</parent>
</grandParent>
</project>
Parsing XML with namespace in Python via 'ElementTree' を見た後の私の python コード
import xml.etree.ElementTree as ET
spaces='xmlns':'http://maven.apache.org/POM/4.0.0','schemaLocation':'http://maven.apache.org/xsd/maven-4.0.0.xsd'}
tree = ET.parse("test.xml")
a=tree.find('parent')
for b in a.findall('child', namespaces=spaces):
if b.text.strip()=='Jay/Doctor':
print "child exists"
break
else:
ET.SubElement(a,'child').text="Jay/Doctor"
tree.write("test.xml")
エラーが表示されます: AttributeError: 'NoneType' object has no attribute 'findall'