class DomRemove in Migrate Plus 8.5
Remove nodes from a DOMDocument object.
Configuration:
- selector: An XPath selector.
- limit: (optional) The maximum number of nodes to remove.
Usage:
process:
bar:
-
plugin: dom
method: import
source: text_field
-
plugin: dom_remove
selector: //img
limit: 2
-
plugin: dom
method: export
This example will remove the first two <img> elements from the source text (if there are that many). Omit 'limit: 2' to remove all <img> elements.
Plugin annotation
@MigrateProcessPlugin(
id = "dom_remove"
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\migrate\ProcessPluginBase implements MigrateProcessInterface
- class \Drupal\migrate_plus\Plugin\migrate\process\DomProcessBase
- class \Drupal\migrate_plus\Plugin\migrate\process\DomRemove
- class \Drupal\migrate_plus\Plugin\migrate\process\DomProcessBase
- class \Drupal\migrate\ProcessPluginBase implements MigrateProcessInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of DomRemove
1 file declares its use of DomRemove
- DomRemoveTest.php in tests/
src/ Unit/ process/ DomRemoveTest.php
File
- src/
Plugin/ migrate/ process/ DomRemove.php, line 41
Namespace
Drupal\migrate_plus\Plugin\migrate\processView source
class DomRemove extends DomProcessBase {
/**
* {@inheritdoc}
*/
public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
$this
->init($value, $destination_property);
$walking_dead = [];
// The PHP docs for removeChild() explain that you need to do this in two
// steps.
foreach ($this->xpath
->query($this->configuration['selector']) as $node) {
if (isset($this->configuration['limit']) && count($walking_dead) >= $this->configuration['limit']) {
break;
}
$walking_dead[] = $node;
}
foreach ($walking_dead as $node) {
$node->parentNode
->removeChild($node);
}
return $this->document;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
DomProcessBase:: |
protected | property | Document to use. | |
DomProcessBase:: |
protected | property | Xpath query object. | |
DomProcessBase:: |
protected | function | Initialize the class properties. | |
DomRemove:: |
public | function |
Performs the associated process. Overrides ProcessPluginBase:: |
|
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginBase:: |
public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | 92 |
ProcessPluginBase:: |
public | function |
Indicates whether the returned value requires multiple handling. Overrides MigrateProcessInterface:: |
3 |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |