Парсинг сайтів у PHP

//

DOM

//

Класс DOMDocument

//

  • public DOMDocument::loadHTMLFile(string $filename, int $options = 0): DOMDocument|bool разбирает HTML-документ из файла filename (в отличие от загрузки XML, HTML не должен быть правильно построенным well-formed)
    • filename может содержать URL,
      • в это случае в запросе HTTP_USER_AGENT будет содержать строку вида 'PHP (www.reks.biz), hosted by servera.link'
  • public DOMDocument::loadHTML(string $source, int $options = 0): DOMDocument|bool разбирает HTML из строки source
  • public DOMDocument::save(string $filename, int $options = 0): int|false создаёт XML-документ из представления DOM
  • public DOMDocument::saveXML(?DOMNode $node = null, int $options = 0): string|false создает xml-строку, соответствующую узлу node или всему документу

Класс DOMElement

//

  • public DOMDocument::getElementsByTagName(string $qualifiedName): DOMNodeList
    возвращает новый объект класса DOMNodeList с элементами с заданным локальным именем
  • //$classes = $element->getAttribute('class');
    //$classList = $element->classList;
  • $info->nodeValue

Класс DOMNode

//

Тип узла

Тип !!!

  • XML_ELEMENT_NODE (int) 1 узел класса DOMElement соответствует парному или непарному тегу
  • XML_ATTRIBUTE_NODE (int) 2 Узел класса DOMAttr
  • XML_TEXT_NODE (int) 3 узел класса DOMText - это текст или фрагмент текста разделенный тегами внутри парного родительского тега
  • XML_CDATA_SECTION_NODE (int) 4 Узел класса DOMCharacterData
  • XML_ENTITY_REF_NODE (int) 5 Узел класса DOMEntityReference
  • XML_ENTITY_NODE (int) 6 Узел класса DOMEntity
  • XML_PI_NODE (int) 7 Узел класса DOMProcessingInstruction
  • XML_COMMENT_NODE (int) 8 Узел класса DOMComment
  • XML_DOCUMENT_NODE (int) 9 Узел класса DOMDocument
  • XML_DOCUMENT_TYPE_NODE (int) 10 Узел класса DOMDocumentType
  • XML_DOCUMENT_FRAG_NODE (int) 11 Узел класса DOMDocumentFragment
  • XML_NOTATION_NODE (int) 12 Узел класса DOMNotation

Модуль libxml

В основе работы модуля DOM и ряда других модулей XML лежит модуль libxml

  • libxml_use_internal_errors(?bool $use_errors = null): bool устанавливает/отменяет вывод ошибок выявленных в xml-данных  в поток вывода

Джерела

Leave a Reply