bs4 を使用して xml ファイルを解析し、再度新しい xml ファイルに書き戻しています。
入力ファイル:
<tag1>
<tag2 attr1="a1">" example text "</tag2>
<tag3>
<tag4 attr2="a2">" example text "</tag4>
<tag5>
<tag6 attr3="a3">' example text '</tag6>
</tag5>
</tag3>
</tag1>
脚本:
soup = BeautifulSoup(open("input.xml"), "xml")
f = open("output.xml", "w")
f.write(soup.encode(formatter='minimal'))
f.close()
出力:
<tag1>
<tag2 attr1="a1"> " example text " </tag2>
<tag3>
<tag4 attr2="a2"> " example text " </tag4>
<tag5>
<tag6 attr3="a3"> ' example text ' </tag6>
</tag5>
</tag3>
</tag1>
"
と を保持したい'
。エンコード フォーマッターのすべてのオプション (Minimal、xml、html、none) を使用してみました。しかし、それらのどれもこの問題を解決しませんでした。
"
次に、 " を手動で置き換えてみました。
for tag in soup.find_all(text=re.compile("\"")):
res = tag.string
res1 = res.replace("\"",""")
tag.string.replaceWith(res1)
しかし、これにより以下の出力が得られました
<tag1>
<tag2 attr1="a1"> &quot; example text &quot; </tag2>
<tag3>
<tag4 attr2="a2"> &quot; example text &quot; </tag4>
<tag5>
<tag6 attr3="a3"> ' example text ' </tag6>
</tag5>
</tag3>
</tag1>
& を に置き換えます&
。私はここで混乱しています。これを解決するのを手伝ってください。