0

WordファイルをHTMLファイルに変換しましたが、問題があります。MS-Wordが自動的にページにスタイルを追加します。

例えば

<div align="center"></div>
<p style=""></p>
<table cellpadding="0">

<tr><img src="...."></img></tr>

</table>

次のように出力したい

 <div></div>
<p></p>
<table>

<tr><img src="...."></img></tr>

</table>

imgインラインスタイルを削除したくありません。

前もって感謝します

update:  if it is very hard to keep img style in the file. please give me the code excluding that part. it is very urgent for me and i cant edit 1000 pages manually 
4

2 に答える 2

1

elementtreeを使用することをお勧めします。ファイルを解析し、不要なスタイル属性をすべて削除して、ファイルを書き込みます。

elementtree を使用すると、これは 5 ライナーになります。

于 2012-08-16T09:28:19.240 に答える
0

タグの既知のリストのスタイルを削除したい場合、完全な重量の HTML パーサーを使用する必要はないと思います。何かのようなもの

expr = r'((?<=<div)|(?<=<p))[ ]+.*?>'
html_text = re.sub(expr,'>',html_text)

うまく動作します。もちろん、置換するタグの配列を使用して (?<=

削除したいスタイル タグのリストがある場合は、さらに簡単です。のような式を生成するだけです

expr = r' (style|align|myStyleTag)=".*?"'

re.subで。

それらを動的に組み合わせる必要がある場合は、パーサーを使用してください。

OPのコメントに応じて編集:

残念ながら、後読みには固定サイズの式が必要なため、<.* などは機能しません。固定のタグ リストがない場合は、おそらく既存のフレームワークを使用することをお勧めします。

これを回避する醜い方法は次のようになります。

expr = "("
for i in range(1,8): ## or whatever the max/min tag lengths are
    expr += "(?<=<[a-zA-Z]{" + str(i) + "})|"
expr = expr[:-1] + ")[ ]+.*?>"

しかし、それはかなり悪いスタイルです。

于 2012-08-16T09:35:49.227 に答える