GoLand 2023.3 Help

XML and HTML templates

Examples for HTML and XML

The following examples show how you can use structural search in HTML and XML code.

Delete all lines that have the id attribute greater than 2

  1. Create an HTML file and paste the following code:

    <!doctype html> <html> <head> <title>Structural Search Example</title> <body> <ul> <li id="1">Example line 1</li> <li id="2">Example line 2</li> <li id="3">Example line 3</li> <li id="a">Example line a</li> <li id="5">Example line 5</li> </ul> </body> </html>
  2. In the main menu, go to Edit | Find | Search Structurally.

  3. From the Language list, select HTML.

  4. Paste the following string to the Search template field:

    <$tag$ $attribute$="$value$">
  5. Click the $tag$ variable.

  6. In the filter panel, click Add modifier, select Text and type li in the value field.

    If the filter panel is not visible, click the Toggle Modifier Panel icon.

    Toggle Filter Panel
  7. Click the $attribute$ variable.

  8. In the filter panel, click Add modifier, select Text and type id in the value field.

  9. Click the $value$ variable.

  10. In the filter panel, click Add modifier, select Text and type \d+ in the value field.

    The \d+ regular expression limits search results to numeric values. So, the line with the id="a" will be filtered out.

  11. Without switching the focus from the filter panel, click the Add button, select Script and paste the following code:

    value.getText().replaceAll (/"/, '').toInteger() > 2

    The script reads the content of the $value$ variable and returns it as a string (for example, "1"). Then the script replaces all the quotes and converts the string value to integer and compares it with 2.

    Delete lines with ids greater than 2

Convert uppercase values of the class attribute in li tags to lowercase

  1. Create an HTML file and paste the following code:

    <!doctype html> <html> <head> <title class="EXAMPLE">Structural Replace Example</title> <body> <ul> <li class="EXAMPLE">Example line 1</li> <li class="example">Example line 2</li> <li class="EXAMPLE">Example line 3</li> <li class="example">Example line a</li> <li id="EXAMPLE">Example line 5</li> </ul> </body> </html>
  2. In the main menu, go to Edit | Find | Replace Structurally.

  3. From the Language list, select HTML.

  4. Paste the following string to the Search template field:

    <$tag$ $attribute$="$value$">
  5. Select the Match case checkbox.

  6. Click the $tag$ variable.

  7. In the filter panel, click Add modifier, select Text and type li in the value field.

  8. Click the $attribute$ variable.

  9. In the filter panel, click Add modifier, select Text and type class in the value field.

  10. Click the $value$ variable.

  11. In the filter panel, click Add modifier, select Text and type [A-Z].* in the value field.

    The [A-Z].* regular expression limits search results to uppercase values.

  12. From the Target list, select value. This procedure highlights all the uppercase values of the class attribute.

  13. In the Replace template field, paste the $to_lower_case$ variable.

  14. Click the $to_lower_case$ variable.

  15. In the filter panel, click Add modifier, select Script and paste the following code:

    value.getText().toLowerCase()
    Replace a target structurally
  16. Click Find.

  17. In the Find tool window, preview the found results and click Replace All.

    find.replace.all.action
Last modified: 06 March 2023