2017-08-08 5 views
-4

私は以下のようなXMLをほとんど持っていません。私はPythonで美しいスープを使って、以下の期待される出力に従ってxmlから内容を(データフレームとして)抽出したいと思います。親切に私を助けてください。美味しいスープを使ったXMLタグによるコンテンツの抽出

サンプルXML:

<Author AffiliationIDS="Aff1 Aff2" CorrespondingAffiliationID="Aff1" ORCID="http://orcid.org/0000-0003-4649-327X"> 
    <AuthorName DisplayOrder="Western"> 
     <GivenName>Anouk</GivenName> 
     <GivenName>van der</GivenName> 
     <FamilyName>Hoorn</FamilyName> 
    </AuthorName> 
    <Contact> 
     <Phone>+31-50-3612400</Phone> 
     <Fax>+31-50-3611707</Fax> 
     <Email>[email protected]</Email> 
    </Contact> 
</Author> 
<Author AffiliationIDS="Aff1"> 
<AuthorName DisplayOrder="Western"> 
    <GivenName>Kamal</GivenName> 
    <GivenName>M.</GivenName> 
    <FamilyName>Aden</FamilyName> 
</AuthorName> 
</Author> 
<Author AffiliationIDS="Aff1 Aff2"> 
<AuthorName DisplayOrder="Western"> 
    <GivenName>Peter</GivenName> 
    <GivenName>Jan</GivenName> 
    <FamilyName>van Laar</FamilyName> 
</AuthorName> 
</Author> 

予想される出力:ここ

Anouk van der Hoorn   AuthorName 
Kamal M. Aden    AuthorName 
Peter Jan var Laar   AuthorName 
+2

あなたが試したコードを投稿して、あなたが持っている問題を特定することによって、助けてください。 – mhawke

答えて

1

はわずか数行では、コードです:

from bs4 import BeautifulSoup as b 
with open("sample.xml", "r") as f: # opening xml file 
    content = f.read() 
soup = b(content, "lxml") 
authornames = ([values.find("authorname").text.replace("\n", ' ') for values in soup.findAll("author")]) 
print authornames 

出力:

[u' Anouk van der Hoorn ', u' Kamal M. Aden ', u' Peter Jan van Laar '] 
関連する問題