Appendix C. XPath Quick Reference

Just as regular expressions are the standard way to interact with plain text, XPath is the standard way to interact with XML. Because of that, XPath is something you are likely to run across in your travels. Several cmdlets support XPath queries: Select-Xml, Get-WinEvent, and more. Tables C-1 and C-2 give a quick overview of XPath concepts.

For these examples, consider this sample XML:

<AddressBook>
  <Person contactType="Personal">
    <Name>Lee</Name>
    <Phone type="home">555-1212</Phone>
    <Phone type="work">555-1213</Phone>
  </Person>
  <Person contactType="Business">
    <Name>Ariel</Name>
    <Phone>555-1234</Phone>
  </Person>
</AddressBook>

Table C-1. Navigation and selection

Syntax

Meaning

/

Represents the root of the XML tree.

For example:

PS > $xml | Select-Xml "/" | Select -Expand Node

AddressBook
-----------
AddressBook

/Node

Navigates to the node named Node from the root of the XML tree.

For example:

PS > $xml | Select-Xml "/AddressBook" | Select -Expand Node

Person
------
{Lee, Ariel}

/Node/*/Node2

Navigates to the noded named Node2 via Node, allowing any single node in between.

For example:

PS > $xml | Select-Xml "/AddressBook/*/Name" | Select -Expand Node

#text
-----
Lee
Ariel

//Node

Finds all nodes named Node, anywhere in the XML tree.

For example:

PS > $xml | Select-Xml "//Phone" | Select -Expand Node

type                                   #text
----                                   -----
home                                   555-1212
work                                   555-1213
                                       555-1234

..

Retrieves the parent node of the given node.

For example:

PS>$xml | Select-Xml "//Phone" | Select -Expand Node type ...

Get Windows PowerShell Cookbook, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.