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 |
| Navigates to the node named
For example: PS > $xml | Select-Xml "/AddressBook" | Select -Expand Node
Person
------
{Lee, Ariel} |
| Navigates to the noded named
For example: PS > $xml | Select-Xml "/AddressBook/*/Name" | Select -Expand Node #text ----- Lee Ariel |
| Finds all nodes named
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 ... |