有个xml文件的格式大致如下:
<re>
<id>123</id>
<name>abc</name>
</re>
<re>
<id>126</id>
<name>abc</name>
</re>
<re>
<id>135</id>
<name>abc</name>
</re>
<re>
<id>147</id>
<name>abc</name>
</re>
然后另外一个delete.txt保存的是需要删除的re标签的id。假设txt内容如下:
126
147
需要做的就是读取这个delete.txt文件,然后在xml中找到这些id对应的<re>标签将其全部删除,如上例的结果就是:
<re>
<id>123</id>
<name>abc</name>
</re>
<re>
<id>135</id>
<name>abc</name>
</re>
请问是怎么做的。。另外需要提到的是这个xml文件挺大的,有200多M。
BeautifulSoup
パッケージを使用できます:インストール:
リーリーhtml
パーサーが十分ではないと思われる場合は、ドキュメントを参照して他の適切なパーサーをインストールしてください。BeautifulSoup
について詳しく知りたい場合は、公式ドキュメント (中国語版あり) も参照してください。テストファイル:
私が使用したテスト ファイルは次のとおりです:
リーリーコード:
リーリープログラム出力:
リーリーコードの説明:
まず、
をインポートします。 リーリー 次に、Beautiful Soup
パッケージからBeautifulSoup
クラスは削除する ID と
リーリーdelete.txt
とtest.xml
からメインの XML コンテンツをそれぞれ読み取ります。次のステップでは、BeautifulSoup
パーサーを使用してsoup
オブジェクトhtml.parser
を具体化して生成します。xml
を解析するには:ここでは、フィルタリング用の関数
次に、has_delete_id
を定義します。xml
タグであり、削除する<re>
タグが含まれている限り、<id>
内のすべてのタグが取得されます。 リーリーは削除したいタグを見つけて、検索されたタグにアクセスしてメソッド
最後にsoup(has_delete_id)
を呼び出してファイルからタグを削除します。decompose()
は、変更されたファイルを出力するのに役立ちます。
soup.prettify()