私はこれを機能させようとしています。XML ファイルがあり、XPath を使用して要素 'title' をフィルタリングする必要があります。その後、C 要素の下から外部ファイルにすべてをコピーする必要がありますが、それは今のポイントではありません。xml.etree.cElementTree または xml.etree.ElementTree を使用してこれを実行する必要があります。ここで、stackoverflow や他のサイトの投稿をすでにたくさん読んでいて、動けなくなってしまいました。そう..最初の XML 構造:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<delivery xmlns="http://url" publicationdate="2013-08-28T09:10:32Z">
<A>
<B>
<C>
<Cid>XXXXXXXXX</Cid>
<cref>111111-2222222</cref>
<D>
<E/>
<F/>
<G/>
<H>
<Href>XXXXXXXXXXXX</Href>
<hcont name="XXXXXX" country="EN"/>
</H>
<I/>
<J/>
<K>XXXXXXXXX</K>
<oldK>XXXXXXX</oldK>
<title>
<content lang="en">TITLE</content>
</title>
<L>
<isL>false</isL>
</L>
</D>
<M>
<startTime>2013-08-28T03:00:00Z</startTime>
<endTime>2013-08-29T00:58:00Z</endTime>
</M>
</C>
</B>
</A>
</delivery>
XPath で Cid 要素を見つけることさえできません。スクリプトは、「None」または [] を返すか、何も返しません。
import xml.etree.ElementTree as ET
doc = ET.ElementTree(file='short.xml')
for x in doc.findall('./A/B/C'):
print x.get('Cid').text
これは何も返しません。これを機能させる方法は?Cid要素でさえ「見つける」方法は?