PHP DOMDocument - получите источник HTML ТЕЛА

Чтобы сохранить значения в общих настройках:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sp.edit();
editor.putString("Name","Jayesh");
editor.commit();

Чтобы получить значения из общих настроек:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
String name = sp.getString("Name", "");
17
задан leepowers 26 February 2010 в 14:15
поделиться

3 ответа

В вашем случае вы хотите работать не с HTML-документом, а с HTML-фрагментом - частью HTML-кода ;; что означает, что DOMDocument - это не совсем то, что вам нужно.

Вместо этого я бы предпочел использовать что-то вроде HTMLPurifier (цитата) :

HTML Purifier - это соответствующая стандартам библиотека фильтров HTML, написанная на PHP. {{1 }} HTML Purifier не только удалит весь вредоносный код (более известный как XSS) с помощью тщательно проверенного, безопасного, но разрешающего белого списка, он также убедитесь, что ваши документы соответствуют стандартам , что возможно только при всестороннем знании спецификаций W3C.

И, если вы попробуете свою часть кода:

<div><p>Hello World

Используя демонстрационную страницу HTMLPurifier , вы получите чистый HTML в качестве вывода:

<div><p>Hello World</p></div>

Намного лучше, не так ли? ; -)

(Обратите внимание, что HTMLPurfier поддерживает широкий спектр параметров, и просмотр его документации не повредит)

3
ответ дан 30 November 2019 в 12:58
поделиться

Быстрое решение вашей проблемы - использовать выражение xPath для захвата тела.

$dom= new DOMDocument();
$dom->loadHTML('<div><p>Hello World');      
$xpath = new DOMXPath($dom);
$body = $xpath->query('/html/body');
echo($dom->saveXml($body->item(0)));

Слово предупреждения здесь. Иногда loadHTML выдает предупреждение, когда встречает плохо сформированные HTML-документы. Если вы анализируете HTML-документы такого типа, вам нужно найти лучший HTML-парсер [предупреждение о собственной ссылке].

23
ответ дан 30 November 2019 в 12:58
поделиться

Столкнувшись с той же проблемой, я создал оболочку вокруг DOMDocument под названием SmartDOMDocument, чтобы преодолеть этот и некоторые другие недостатки (например, проблемы с кодированием).

Вы можете найти его здесь: http://beerpla.net/projects/smartdomdocument

1
ответ дан 30 November 2019 в 12:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: