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>
下に移動する必要があり<video>
ます。
結果のエクスポート 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>
<release_date>2012-04-23</release_date>
</package>
lxmlのインストールに成功したので、理想的にはその解決策を探しています。
敬具。
不要なタグとそのコンテンツを削除できましたが、できれば置き換えずに、他のタグを並べ替えたり移動したりできる必要があります。また、この xml コード行を削除するのにも問題があります」
<!--Carpet ID: fd54678-->
これが私が現在持っているものです:
from lxml import etree
xmlFileIn = '/xmls/metadata.xml'
xmlFileOut = '/xmls/output.xml'
tree = etree.parse(xmlFileIn)
root = tree.getroot()
etree.strip_elements(root, 'assets')
etree.strip_tags(root, 'assets')
etree.strip_elements(root, 'chapters')
etree.strip_tags(root, 'chapters')
etree.strip_elements(root, 'xid')
etree.strip_tags(root, 'xid')
# Write the new xml file
tree.write(xmlFileOut, pretty_print=True, xml_declaration=True, encoding="utf-8")
<!--Carpet ID: fd54678-->
そのため、タグを削除する必要があります。<!--.*-->
真ん中の内容が変わるので、ワイルドカードを使ってこれらを削除したい. また、タグのブロックを移動する方法も知る必要があります。