Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2013, 14:14   #1
st_tsourkan
 
Регистрация: 21.10.2013
Сообщений: 4
По умолчанию Как отключить сообщения об ошибках xml документов? TXMLDocument

Всех приветствую!
Понадобилось при помощи TXMLDocument открыть и html-файл.
Не знаю, правильно ли это, но пока делаю так.

Пример файла ниже. Как видите, в теле html-документа есть и Ява-скрипт.

Код:
<!DOCTYPE html>
<html>
<head>
	<meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0" />
	<meta name="apple-mobile-web-app-capable" content="yes" />
	<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
	<script src="http://stg.odnoklassniki.ru/share/odkl_share.js" type="text/javascript" ></script>

		<title>Название</title>
		<meta property="og:title" content="Название2" />
		<meta property="og:description" content="Виртуальный тур по" />

		<script type="text/javascript">
				var re = /start.html/;
				var str = location.href
				var tmb = str.replace(re, "tmb.jpg")
				var share_image = tmb;
                function fbs_click() {u=location.href;t=document.title;window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'facebook_sharer','toolbar=0,status=0,width=626,height=436');return false;}
				
        </script>
	
</head>
		<body onload="ODKL.init();">
			<div style="display:none;"><a class="odkl-current" id="odn" onClick="ODKL.Share(this); return false;" href="#"></a></div>
	
<script src="start.js"></script>
<div id="pano" style="width:100%; height:100%;">
	<noscript><table style="width:100%;height:100%;"><tr style="valign:middle;"><td><div style="text-align:center;">ERROR:<br/><br/>Javascript not activated<br/><br/></div></td></tr></table></noscript>
	<script>
		embedpano({swf:"start.swf", xml:"start.xml", target:"pano"});
	</script>
</div>
</body>
</html>
Из документа надо вытащить содержимое тега title, а также помеченное жирным шрифтом ниже.
<meta property="og:title" content="Название2" />
<meta property="ogescription" content="Виртуальный тур по" />

Собственно проблема в том, что при запуске программы вылазит сообщение об ошибке, что в n-й строке (в java-скрипте) нет запятой и Delphi отказывается дальше обрабатывать документ.

1. Как можно подавить сообщения об ошибках?
Есть свойство ParseOptions, но в дельфевском хелпе, как всегда, практически ноль информации.
2. Как отключить проверку документа на валидность? Если мне нужен текст из тега <title>, то остальное содержимое документа до лампочки.

3. Ну и главный вопрос: допустимо ли открывать html-документы при помощи TXMLDocument? Если нет, то чем тогда? Открывать как длинную текстовую строку и выуживать нужные мне данные поиском не хотелось бы.
st_tsourkan вне форума Ответить с цитированием
Старый 29.11.2013, 14:47   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

html это специфический xml просто так загрузить не получится
eval вне форума Ответить с цитированием
Старый 29.11.2013, 14:58   #3
st_tsourkan
 
Регистрация: 21.10.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
html это специфический xml просто так загрузить не получится
А чем тогда можно?

Я, конечно, могу открыть как текстовую строку, найти <title>, потом </title>, потом выдернуть текст между ними (аналогично для 2 других параметров). Но хотелось бы попроще
st_tsourkan вне форума Ответить с цитированием
Старый 29.11.2013, 15:09   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

браузер умеет грузить, может есть еще стороннее что-то..
а ваще смотря как много и чего делать, регулярные выражения помогают ну и пос-ами тоже не грех
eval вне форума Ответить с цитированием
Старый 29.11.2013, 15:13   #5
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

а собственно у вас xhtml, по идее он должен загрузиться (но не уверен), какие конкретно ошибки идут? а то про запятую не понятно..
eval вне форума Ответить с цитированием
Старый 29.11.2013, 15:19   #6
st_tsourkan
 
Регистрация: 21.10.2013
Сообщений: 4
По умолчанию

Выскакивает окошко с текстом:
"Требуется точка с запятой. Line 25: unction fbs_click() {u ..."
Даже если нажать Ignore, обработка документа не происходит дальше.

Вариант добавить запятую в то место, куда хочет Дельфи, не рассматриваем, потому что таких файлов over 15000.

Фрагмент кода моей программы:

Код:
var i: integer;
nodes: IXMLNode;
tit: string;
begin
MSXML6_ProhibitDTD:=false;
Xml.Win.msxmldom.MSXMLDOMDocumentFactory.AddDOMProperty('ProhibitDTD', False);

  if Fileexists(path+'\start.html') then begin
    Form2.XMLDocument1.LoadFromFile(path+'\start.html');
    Form2.XMLDocument1.Active:=true;
    nodes:=Form2.XMLDocument1.Childnodes[0];
    tit:=nodes.ChildNodes['head'].ChildNodes['title'].Text;
st_tsourkan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
UniDAC, сообщения об ошибках serpan БД в Delphi 6 23.10.2013 23:26
Как работать с XML документами при помощи TXMLDocument в Delphi? st_tsourkan Общие вопросы Delphi 2 22.10.2013 14:08
Как отключить в Olecontainer служебные сообщения Word? alexan0308 Общие вопросы Delphi 4 12.02.2013 16:33
Парсинг XML с использованием TXMLDocument ВанекПВМ Компоненты Delphi 3 05.02.2013 10:54
Сообщения об ошибках IdFTP hotcooler17 Работа с сетью в Delphi 2 29.01.2009 14:24