HTML Tidy с PHP-кодом, XHTML не является допустимым XML впоследствии - PullRequest
0 голосов
/ 10 августа 2011

Я использую http://tidy.sourceforge.net/ для преобразования HTML в XHTML и хочу преобразовать этот XHTML позже с помощью XSLT.

К сожалению, я попытался проанализировать сайт techcrunch (только для тестирования).Сайт techcrunch содержит php-код, а HTML tidy создает НЕ действительный XML-файл с этим php-кодом.

Упрощенный входной файл 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>

Основной проблемой является < в onclick, который не допускается в качестве атрибута XML!XSLTProc отказывается открывать этот недопустимый XML.

My Tidy Options 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 commandline:

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

Я пропустил какой-либо HTMLОпрятный вариант?Все варианты Tidy: http://tidy.sourceforge.net/docs/quickref.html

Ответы [ 2 ]

1 голос
/ 10 августа 2011

Tidy имеет только ограниченную поддержку кода PHP . Я подозреваю, что это запутано, потому что блок PHP находится внутри атрибута (который не закрыт).

У этого может быть больше шансов на:

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

Извините, не уверен, что еще многое можно сделать. Надеюсь, это поможет.

0 голосов
/ 10 августа 2011

У вас есть возможность удалить onclick из ссылки и вместо этого переместить скрипт onclick между некоторыми тегами скрипта?

...