0

私はpythonが初めてで、何かを達成しようとしてきましたが、これまでのところ成功していません。XML を開き、タグとその内容全体を削除し、XML 内で他のタグを移動しようとしています。

ここに私の元のインポートxmlがあります:

<?xml version="1.0" encoding="UTF-8"?>
<package>
    <language>en-GB</language>
    <video>
        <original_spoken_locale>en-US</original_spoken_locale>
        <copyright_cline>2012 copyright</copyright_cline>
        <release_date>2012-04-23</release_date>
        <title>Amazing Film</title>
    </video>
    <provider>testprovider</provider>
</package>

<copyright_cline>タグとタグを削除する必要があり<title>ます。次に、<provider>タグをタグ内に移動し、とタグ<video>の間に配置する必要があります。<original_spoken_locale><release_date>

結果のエクスポート xml は次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<package>
    <language>en-GB</language>
    <video>
        <original_spoken_locale>en-US</original_spoken_locale>
        <provider>testprovider</provider>
        <release_date>2012-04-23</release_date>
    </video>
</package>

私はさまざまな解決策を試しましたが、完全に機能するものは何もありませんでした。モジュールが気に入りxml.etree、インストールも試みましlxmlたが、インストールできなかったので、インストール不要のモジュールを使用したいと思います。私は使っているpython 3.3.2.

このサイトは素晴らしい情報源ですが、私の知識ではそれを理解するには不十分です. 実際に役立つのは、実際に動作するコードの例です。これを調べて、うまくいけば理解できます。どうもありがとう。

4

1 に答える 1

0

使用bs4.BeautifulSoup:

from bs4 import BeautifulSoup
xml = """<?xml version="1.0" encoding="UTF-8"?>
<package>
    <language>en-GB</language>
    <video>
        <original_spoken_locale>en-US</original_spoken_locale>
        <copyright_cline>2012 copyright</copyright_cline>
        <release_date>2012-04-23</release_date>
        <title>Amazing Film</title>
    </video>
    <provider>testprovider</provider>
</package>"""
soup = BeautifulSoup(xml, 'xml')
soup.copyright_cline.replace_with(soup.provider)
soup.title.extract()
print soup

版画:

<?xml version="1.0" encoding="utf-8"?>
<package>
<language>en-GB</language>
<video>
<original_spoken_locale>en-US</original_spoken_locale>
<provider>testprovider</provider>
<release_date>2012-04-23</release_date>

</video>

</package>

lxmlモジュールをインストールできなかった理由はわかりませんが、インストールするBeautifulSoupには単純な操作を行うpip install bs4か、手動でダウンロードしてください

于 2013-06-03T06:42:38.970 に答える