Skip to main content

Search 412 pages — tools, formats, elements, namespaces, directory, comparisons, XPath, datatypes, glossary, parse errors, schema errors, use cases, guides, blog and product.

XPath function

substring-after()

Everything after the first occurrence of a marker. Empty when the marker is absent.

substring-after(s, m) returns the part of s that follows the first m. Paired with substring-before() it splits a two-part value.

Chaining them is how you reach later fields: substring-after(substring-after(s, '-'), '-') gets past two delimiters.

Syntax
substring-after(string, marker) → string
Returns
string
Kind
Function
Version
XPath 1.0 (libxml2)

Worked examples

Each result below is what the evaluator returned, asserted on every test run. An empty result means an empty node-set — which is an answer, not an error.

  • substring-after('WIDGET-1', '-')on order.xmlRun
    1
  • substring-after(substring-after('2026-01-15', '-'), '-')on order.xmlRun
    15

    Chained, to reach the third field.

  • substring-after('WIDGET', '-')on order.xmlRun

    (empty node-set — no matches)

Run your own expression

What catches people out

  • A missing marker gives the empty string rather than the input.
  • There is no split() and no way to return a list — XPath 1.0 has no sequences, only node-sets.

The sample documents

Every example on this page runs against this document. The sitemap one is namespaced on purpose — almost every real XML document is, and that changes which expressions match.

order.xml
<?xml version="1.0" encoding="UTF-8"?>
<order id="A-1001" tier="gold">
  <customer country="NO">Ada Lovelace</customer>
  <!-- priority customer -->
  <?audit retained?>
  <lines>
    <line sku="WIDGET-1" qty="2"><price>14.50</price></line>
    <line sku="WIDGET-2" qty="1"><price>39.00</price></line>
    <line sku="GIFT-WRAP" qty="1"><price>0.00</price></line>
  </lines>
  <note>  Deliver after 09:00  </note>
</order>

Related

All 40 XPath entries

Get started

Bring order to the XML your team can't afford to ignore.

Create a free account and get a private workspace to search, validate, diff, and monitor your XML feeds, sitemaps, schemas, and vendor integrations.