Проблема связана с функцией Instant Run. Перейти к «Файл -> Настройки -> Сборка, выполнение, развертывание -> Мгновенный запуск» и просто отключить его.
Надеюсь, что это работает, если выше ответы не работает ..
Откройте каждую страницу в браузере и сохраните их как .htm файлы. Сравните два использования windiff.
Мое предложение является просто основным способом сделать его... Конечно, для занятия проблемой Вы упомянули, что дополнительные правила должны быть применены здесь... Который находится в Вашем случае, мы получили элемент отделения соответствия, и затем примените атрибуты/свойство, соответствующие правилам и что нет...
Честно говоря, существуют многие и сложные правила, которые должны быть применены для сравнения и не только простой элемент соответствия к другому элементу. Например, что происходит, если у Вас есть дубликаты. например, 1 элемент отделения на одной стороне и 2 элемента отделения с другой стороны. Как Вы собираетесь совпасть, каким элементам отделения соответствует вместе?
Существует много других сложных проблем, которые Вы найдете в слове сравнения. Я говорю базирующийся опыта (часть моего задания является к maitain моим текстовым механизмом сравнения компании).
Я не знаю инструмента, но я знаю, что существует простой способ сделать это:
?<=^|>)[^><]+?(?=<|$
) и замените их пустой строкой (""
), т.е. удалите весь текст. После этого шага у Вас будут все теги разметки HTML. Существует много свободных инструментов регулярного выражения там.Я думаю, что некоторые предложения выше не принимают во внимание, что существуют другие теги в HTML между двумя страницами, которые дословно отличались бы, но получающаяся разметка HTML функционально эквивалентна. Danimal перечисляет идентификаторы управления как пример.
Следующие две разметки functionlly идентичный, но обнаружились бы как отличающиеся при простом сравнении тегов:
<div id="ctl00_TopNavHome_DivHeader" class="header4">foo</div>
<div class="header4">foo</div>
Я собирался предложить, чтобы Danimal записали перевод HTML, который ищет HTML-тэги и преобразовывает оба документа в упрощенную версию и того, который опускает идентификационные теги и любые другие теги, которые Вы определяете как не важные. Это должно было бы, вероятно, быть происходящей работой, поскольку Вы игнорируете определенные атрибуты/теги и затем сталкиваетесь с новыми, которые Вы также хотите проигнорировать.
Однако мне нравится идея использовать XmlSchemaInterface, чтобы свести его к XML-схеме, затем использовать различный инструмент, который понимает правила XML.
Если бы я был к tacke этой проблемой, то я сделал бы это:
В Вашем примере у Вас было бы только объект элемента отделения загруженным на одной стороне, с другой стороны у Вас будет объект элемента отделения загруженным 1 дочерним элементом элемента абзаца типа. разожгите свой итератор, сначала Вы подойдете элемент отделения, второй итератор, Вы подойдете абзац ни с чем. У Вас есть свои структурные различия.
@Mike - это сравнило бы все, включая содержание страницы, которая не является, хотят исходный требуемый плакат.
Предположение, что у Вас есть доступ к DOM браузера (путем записи плагина Firefox/IE или безотносительно), я, вероятно, поместил бы все элементы HTML в дерево, затем сравнил бы эти два дерева. Если имя тега отличается, то узел отличается. Вы могли бы хотеть прекратить перечислять в определенный момент (Вы, вероятно, не заботитесь о промежутке, полужирном, курсивном, и т.д. - возможно, только волнуются об отделениях?), так как некоторые теги являются действительно содержанием, а не структурой, страницы.
Петляйте через следующий сценарий Perl, затем используйте разность-iw, чтобы сделать нечувствительное к регистру, различный игнорирующий пробел.
#! /usr/bin/perl -w
use strict;
undef $/;
my $html = <STDIN>;
while ($html =~ /\S/) {
if ($html =~ s/^\s*<//) {
$html =~ s/^(.*?)>// or die "malformed HTML";
print "<$1>\n";
} else {
$html =~ s/^([^<]+)//;
print "(text)\n";
}
}
Это было превосходным запуском. Еще несколько разъяснений/комментариев:
дальнейшее размышление: Я думаю, что хорошее начало должно было бы предположить, что HTML XHTML совместимый. Я мог затем вывести схему (использующий новые методы .net XmlSchemaInference), затем разность схемы. Я могу затем посмотреть на различия и рассмотреть, являются ли они значительными.
См. http://www.semdesigns.com/Products/SmartDifferencer/index.html для получения информации об инструменте, параметризованном языковой грамматикой и создающем дельты в терминах языковых элементов (идентификаторов, выражений, операторов, блоков, методов и т. д.), вставленных, удаленных, перемещенных, замененных или содержащих идентификаторы, последовательно подставленные в них. Этот инструмент игнорирует переформатирование пробелов (например, различные разрывы строк или макеты) и семантически неразличимые значения (например, он знает, что 0x0F и 15 - это одно и то же значение). или в нем последовательно подставлены идентификаторы. Этот инструмент игнорирует переформатирование пробелов (например, различные разрывы строк или макеты) и семантически неразличимые значения (например, он знает, что 0x0F и 15 - это одно и то же значение). или в нем последовательно подставлены идентификаторы. Этот инструмент игнорирует переформатирование пробелов (например, различные разрывы строк или макеты) и семантически неразличимые значения (например, он знает, что 0x0F и 15 - это одно и то же значение). Это можно применить к HTML с помощью парсера HTML.
РЕДАКТИРОВАТЬ: 9/12/2009. Мы создали экспериментальный инструмент SmartDiff с помощью редактора HTML.
Взгляните на несравненное. В нем есть функция сравнения XML, которая может вам помочь.
Вам также может потребоваться учесть, что сам «контент» может содержат дополнительную разметку, поэтому, вероятно, стоит удалить все в определенных элементах (например, и
<div id="mainContent">
<p>lorem ipsum etc..</p>
</div>
<div id="mainContent">
<p>Here is some real content<img class="someImage" src="someImage.jpg" /></p>
<ul>
<li>and</li>
<li>some</li>
<li>more..</li>
</ul>
</div>
Я бы использовал (или внес бы свой вклад) html5lib
и его выход SAX. Просто пролистайте 2 потока SAX в поисках несоответствий и выделите все соответствующее поддерево.
http://www.mugo.ca/Products/Dom-Diff
Работает с FF 3.5. Я еще не тестировал FF 3.6.