2011-08-10 14 views
0

私はhttp://tidy.sourceforge.net/を使ってHTMLをXHTMLに変換しています。このXHTMLをXSLTで後で変換したいと思います。HTML PHPコードで整頓した後、XHTMLは無効なXMLです。

残念ながら私はtechcrunchサイト(テスト用)を解析しようとしました。 techcrunchサイトにPHPコードが含まれていて、HTML tidyがこのPHPコードでは有効でないXMLファイルを生成します。

簡素化された入力ファイルdirty.htm

<html> 
<head> 
</head> 
<body> 
    <a href="http://www.crunchbase.com/company/google" onclick="<?php tc_set_omniture_attr("post_widget_crunchbase") ?>Google</a> 
</body> 
</html> 

とHTML Tidyのcleaned.htmと私の出力ファイル:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title></title> 
</head> 
<body> 
<p><a href="http://www.crunchbase.com/company/google" onclick="<?php tc_set_omniture_attr(">Google</a></p> 
</body> 
</html> 

主な問題は、XML属性として許可されていませんonclick<です! XSLTProcはこの有効でないXMLを開くことを拒否します。

マイHTML Tidyのオプションtidyconfig.cfg

output-xhtml: 1 
indent: 0 
tidy-mark: 0 
wrap: 0 
alt-text: 
doctype: strict 
force-output: 1 
numeric-entities: 1 
clean: 1 
bare: 1 
word-2000: 1 
drop-proprietary-attributes: 1 
enclose-text: 1 
logical-emphasis: 1 

HTML Tidyのコマンドライン:

tidy -quiet -config tidyconfig.cfg -output cleaned.htm dirty.htm 

私は、任意のHTML Tidyのオプションを逃しましたか?すべての整頓オプション:http://tidy.sourceforge.net/docs/quickref.html

答えて

1

ちょうどlimited support for PHP codeを持っています。 PHPブロックが(閉じられていない)属性の中にあるので、混乱していると思われます。

それはで、より良いチャンスがあるかもしれません。申し訳ありませんが、確実ではないに行うことができる他の多くがあります

<a href="..." onclick="<?php tc_set_omniture_attr("post_widget_crunchbase") ?>">Google</a> 

。希望が役立ちます。

+0

よろしくお願いいたします。 Tidy HTMLは私がしたいことをしません。 – therealmarv

0

リンクからonclickを削除し、代わりにonclickスクリプトをいくつかのスクリプトタグの間に移動するオプションがありますか?

+0

いいえ。 HTML Tidyの前にリストラのチャンスはありません。 HTML Tidyを使用する前に、HTMLの外観がわからないからです。 – therealmarv

関連する問題