name: DomVisitor class_comment: null dependencies: - name: HtmlSanitizerAction type: class source: Symfony\Component\HtmlSanitizer\HtmlSanitizerAction - name: HtmlSanitizerConfig type: class source: Symfony\Component\HtmlSanitizer\HtmlSanitizerConfig - name: StringSanitizer type: class source: Symfony\Component\HtmlSanitizer\TextSanitizer\StringSanitizer - name: AttributeSanitizerInterface type: class source: Symfony\Component\HtmlSanitizer\Visitor\AttributeSanitizer\AttributeSanitizerInterface - name: Cursor type: class source: Symfony\Component\HtmlSanitizer\Visitor\Model\Cursor - name: BlockedNode type: class source: Symfony\Component\HtmlSanitizer\Visitor\Node\BlockedNode - name: DocumentNode type: class source: Symfony\Component\HtmlSanitizer\Visitor\Node\DocumentNode - name: Node type: class source: Symfony\Component\HtmlSanitizer\Visitor\Node\Node - name: NodeInterface type: class source: Symfony\Component\HtmlSanitizer\Visitor\Node\NodeInterface - name: TextNode type: class source: Symfony\Component\HtmlSanitizer\Visitor\Node\TextNode properties: [] methods: - name: __construct visibility: public parameters: - name: config - name: elementsConfig comment: "# * Iterates over the parsed DOM tree to build the sanitized tree.\n#\ \ *\n# * The DomVisitor iterates over the parsed DOM tree, visits its nodes and\ \ build\n# * a sanitized tree with their attributes and content.\n# *\n# * @author\ \ Titouan Galopin \n# *\n# * @internal\n# */\n# final\ \ class DomVisitor\n# {\n# private HtmlSanitizerAction $defaultAction = HtmlSanitizerAction::Drop;\n\ # \n# /**\n# * Registry of attributes to forcefully set on nodes, index by element\ \ and attribute.\n# *\n# * @var array>\n# */\n#\ \ private array $forcedAttributes;\n# \n# /**\n# * Registry of attributes sanitizers\ \ indexed by element name and attribute name for\n# * faster sanitization.\n#\ \ *\n# * @var array>>\n\ # */\n# private array $attributeSanitizers = [];\n# \n# /**\n# * @param array> $elementsConfig Registry of allowed/blocked\ \ elements:\n# * \ \ * If an element is present as a key and contains an array,\ \ the element should be allowed\n# * \ \ and the array is the list of allowed attributes.\n\ # * \ \ * If an element is present as a key and contains an HtmlSanitizerAction,\ \ that action applies.\n# * \ \ * If an element is not present as a key, the default\ \ action applies." - name: visit visibility: public parameters: - name: domNode comment: null - name: visitNode visibility: private parameters: - name: domNode - name: cursor comment: null - name: enterNode visibility: private parameters: - name: domNodeName - name: domNode - name: cursor comment: null - name: visitChildren visibility: private parameters: - name: domNode - name: cursor comment: null - name: setAttributes visibility: private parameters: - name: domNodeName - name: domNode - name: node - name: allowedAttributes default: '[]' comment: "# @var \\DOMNode $child */\n# foreach ($domNode->childNodes ?? [] as $child)\ \ {\n# if ('#text' === $child->nodeName) {\n# // Add text directly for performance\n\ # $cursor->node->addChild(new TextNode($cursor->node, $child->nodeValue));\n#\ \ } elseif (!$child instanceof \\DOMText && !$child instanceof \\DOMProcessingInstruction)\ \ {\n# // Otherwise continue the visit recursively\n# // Ignore comments for security\ \ reasons (interpreted differently by browsers)\n# // Ignore processing instructions\ \ (treated as comments)\n# $this->visitNode($child, $cursor);\n# }\n# }\n# }\n\ # \n# /**\n# * Set attributes from a DOM node to a sanitized node." traits: - Symfony\Component\HtmlSanitizer\HtmlSanitizerAction - Symfony\Component\HtmlSanitizer\HtmlSanitizerConfig - Symfony\Component\HtmlSanitizer\TextSanitizer\StringSanitizer - Symfony\Component\HtmlSanitizer\Visitor\AttributeSanitizer\AttributeSanitizerInterface - Symfony\Component\HtmlSanitizer\Visitor\Model\Cursor - Symfony\Component\HtmlSanitizer\Visitor\Node\BlockedNode - Symfony\Component\HtmlSanitizer\Visitor\Node\DocumentNode - Symfony\Component\HtmlSanitizer\Visitor\Node\Node - Symfony\Component\HtmlSanitizer\Visitor\Node\NodeInterface - Symfony\Component\HtmlSanitizer\Visitor\Node\TextNode interfaces: []