← All recipes
Open source

Add or update child tag

Recipe IDorg.openrewrite.xml.AddOrUpdateChildTag
Artifactorg.openrewrite:rewrite-xml

Adds or updates a child element below the parent(s) matching the provided parentXPath expression. If a child with the same name already exists, it will be replaced by default. Otherwise, a new child will be added. This ensures idempotent behaviour.

Single recipeApache 2.0

Usage

You’ll need the Moderne CLI configured before running the command below.

mod run . --recipe org.openrewrite.xml.AddOrUpdateChildTag --recipe-option "parentXPath=/project//plugin//configuration" --recipe-option "newChildTag=<skip>true</skip>"

If the recipe isn’t available locally, install it with:

mod config recipes jar install org.openrewrite:rewrite-xml:8.88.0

Options

NameTypeDescription
parentXPathrequiredStringXPath identifying the parent to which a child tag must be added
e.g. /project//plugin//configuration
newChildTagrequiredStringThe XML of the new child to add or update on the parent tag.
e.g. <skip>true</skip>
replaceExistingBooleanSet to false to not replace the child tag if it already exists. Defaults to true.

Data tables

Structured output this recipe can produce.

  • Source files that had resultsSource files that were modified by the recipe run.org.openrewrite.table.SourcesFileResults
  • Source files that had search resultsSearch results that were found during the recipe run.org.openrewrite.table.SearchResults
  • Source files that errored on a recipeThe details of all errors produced by a recipe run.org.openrewrite.table.SourcesFileErrors
  • Recipe performanceStatistics used in analyzing the performance of recipes.org.openrewrite.table.RecipeRunStats