Только для разработки то, что сказали другие несколько классов CSS объединены в единственной строке, разграниченной пробелами. Таким образом, если бы Вы хотели к твердому коду это, то это было бы просто похоже на это:
<div class="someClass otherClass yetAnotherClass">
<img ... id="image1" name="image1" />
</div>
Оттуда можно легко получить JavaScript, необходимый, чтобы добавить, что новый класс... просто добавляет пространство, сопровождаемое новым классом к свойству имени класса элемента. Зная это, можно также записать, что функция для удаления класса позже должна потребность возникать.
Лично я бы по возможности начал с elementtree (предпочтительно с реализации C, которая поставляется со стандартной библиотекой Python, или с реализации lxml , но это, по сути, вопрос только более высокой скорости). Это не совместимая со стандартами модель DOM, но она содержит ту же информацию в более питоническом и удобном виде. Вы можете начать с вызова xml.etree.ElementTree.parse
, который принимает источник XML и возвращает дерево элементов; сделайте это в обоих источниках, используйте getroot
для каждого дерева элементов, чтобы получить его корневой элемент, затем рекурсивно сравните элементы, начиная с корневых.
Дочерние элементы элемента образуют последовательность в дереве элементов точно так же, как в стандартном DOM это означает, что их порядок считается важным; но это' Из них легко сделать наборы Python (или, приложив немного больше усилий, какие-то «мульти-наборы», если в вашем сценарии использования важны повторения, а порядок - нет) для более слабого сравнения. Еще проще использовать атрибуты для данного элемента, где гарантируется уникальность и порядок семантически не имеет значения.
Есть ли какая-то конкретная причина, по которой вам нужен стандартный DOM, а не альтернативный контейнер, такой как дерево элементов, или вы просто используете термин DOM в общем смысле, чтобы дерево элементов было в порядке?
В прошлом у меня также были хорошие результаты, используя PyRXP , который использует еще более резкое и простое представление, чем ElementTree. Однако это БЫЛО много лет назад; У меня нет недавнего опыта сравнения PyRXP с lxml или cElementTree.
если в вашем случае важны повторы, хотя порядок - нет) для более слабого сравнения. Еще проще использовать атрибуты для данного элемента, где гарантируется уникальность и порядок семантически не имеет значения.Есть ли какая-то конкретная причина, по которой вам нужен стандартный DOM, а не альтернативный контейнер, такой как дерево элементов, или вы просто используете термин DOM в общем смысле, чтобы дерево элементов было в порядке?
В прошлом у меня также были хорошие результаты, используя PyRXP , который использует еще более резкое и простое представление, чем ElementTree. Однако это БЫЛО много лет назад; У меня нет недавнего опыта сравнения PyRXP с lxml или cElementTree.
если в вашем случае важны повторы, хотя порядок - нет) для более слабого сравнения. Еще проще использовать атрибуты для данного элемента, где гарантируется уникальность и порядок семантически не имеет значения.Есть ли какая-то конкретная причина, по которой вам нужен стандартный DOM, а не альтернативный контейнер, такой как дерево элементов, или вы просто используете термин DOM в общем смысле, чтобы дерево элементов было в порядке?
В прошлом у меня также были хорошие результаты, используя PyRXP , который использует еще более резкое и простое представление, чем ElementTree. Однако это БЫЛО много лет назад; У меня нет недавнего опыта сравнения PyRXP с lxml или cElementTree.
где гарантируется уникальность и порядок семантически не имеет значения.Есть ли какая-то конкретная причина, по которой вам нужен стандартный DOM, а не альтернативный контейнер, такой как дерево элементов, или вы просто используете термин DOM в общем смысле, чтобы дерево элементов было бы нормально?
В прошлом у меня также были хорошие результаты при использовании PyRXP , который использует еще более резкое и простое представление, чем ElementTree. Однако это БЫЛО много лет назад; У меня нет недавнего опыта сравнения PyRXP с lxml или cElementTree.
где гарантируется уникальность и порядок семантически не важен.Есть ли какая-то конкретная причина, по которой вам нужен стандартный DOM, а не альтернативный контейнер, такой как дерево элементов, или вы просто используете термин DOM в общем смысле, чтобы дерево элементов было бы хорошо?
В прошлом у меня также были хорошие результаты при использовании PyRXP , который использует еще более резкое и простое представление, чем ElementTree. Однако это БЫЛО много лет назад; У меня нет недавнего опыта сравнения PyRXP с lxml или cElementTree.
У ve также были хорошие результаты при использовании PyRXP , который использует еще более резкое и простое представление, чем ElementTree. Однако это БЫЛО много лет назад; У меня нет недавнего опыта сравнения PyRXP с lxml или cElementTree. У ve также были хорошие результаты при использовании PyRXP , который использует еще более резкое и простое представление, чем ElementTree. Однако это БЫЛО много лет назад; У меня нет недавнего опыта сравнения PyRXP с lxml или cElementTree.Для сравнения экземпляров XML-документа простое сравнение проанализированных деревьев DOM не сработает. Возможно, вам потребуется реализовать свой собственный NodeComperator, который рекурсивно сравнивает узел и его дочерние узлы с каким-либо другим узлом и его дочерними узлами на основе ваших конкретных критериев, таких как:
Minidom - хорошая отправная точка для разбора файлов и прост в использовании. Однако фактическая реализация функции сравнения для вашего конкретного приложения должна выполняться вами.