2016-10-10 5 views
1

私は皆、私は幾分このように見えるxml構造を持っています。python XML内にテキストを取得<p>...</p>タグ

<abstract> 
    <p id = "p-0001" num = "0000"> 
    blah blah blah 
    </p> 
</abstract> 

私だけ<abstract>タグ内<p>タグを抽出したいと思います。

は、私が試した:

import xml.etree.ElementTree as ET 

xroot = ET.parse('100/A/US07640598-20100105.XML').getroot() 

for row in xroot.iter('p'): 
    print row.text 

これは良いアイデアではありません、私のxml内のすべての<p>タグを取得します。

はとにかく私はあなたが、具体的abstract内部pの要素を検索するためのXPath式を使用することができ、「何とか何とか何とか」

+0

どのように 'xroot'を定義しましたか? –

+0

私はxrootをどのように定義するのかについて私の質問を編集しました。 –

+0

あなたの質問には、引用された部分が与えられているあなたのXMLコンテンツの場所の上にあるすべての 'xmlns ='宣言が含まれていることを確認してください。そのような宣言が存在する場合、デフォルトの名前空間でのみ検索するクエリは一致しません。 –

答えて

2

を抽出することになる

私の欲求出力内のテキストが抽出することができますです。

for p in xroot.xpath(".//abstract//p"): 
    print(p.text.strip()) 

または、ネストされたループがありiter()を使用している場合:

を3210
for abstract in xroot.iter('abstract'): 
    for p in abstract.iter('p'): 
     print(p.text.strip()) 
+0

ありがとう、これはうまく動作します。 –

関連する問題