Summary

To parse XML with a formula, you can use the FILTERXML function. In the example shown, the formula in D5 is:

=FILTERXML(B5,"//album/title")

which returns the ten album titles in the XML.

Note: FILTERXML is not available in Excel on the Mac, or in Excel Online.

Generic formula

=FILTERXML(A1,"xpath")

Explanation 

The FILTERXML function can parse XML using XPath expressions. XML is a special text format designed to transport data, with features that allow it to be easily parsed and verified by software. XPath is a query language for selecting the elements and attributes in an XML document. The FILTERXML function uses XPath to match and extract data from text in XML format.

In the example shown cell B5 contains XML data that describes 10 music albums. For each album, there is information about the title, the artist, and the year. To parse this XML, the FILTERXML function is used 3 times in cells D5, E5, and F5 are as follows:

=FILTERXML(B5,"//album/title") // get title
=FILTERXML(B5,"//album/artist") // get artist
=FILTERXML(B5,"//album/year") // get year

In each case, the XPath expression targets a specific element in the XML. For example, in cell D5, the XPath targets the title element with this string:

"//album/title"

With this XPath expression, FILTERXML returns all 10 album titles. Because this example has been created in Excel 365, which supports dynamic arrays, the results spill into the range D5:D14 automatically.

Dave Bruns Profile Picture

AuthorMicrosoft Most Valuable Professional Award

Dave Bruns

Hi - I'm Dave Bruns, and I run Exceljet with my wife, Lisa. Our goal is to help you work faster in Excel. We create short videos, and clear examples of formulas, functions, pivot tables, conditional formatting, and charts.