So let’s say I’ve got a simple XML document like this:
<a>
<b>
<c>blah</c>
<c>blah</c>
<d>blargh</d>
</b>
</a>
I want to select “c” elements.
Here is what I believe should work:
Select-Xml -Xml $XmlDoc -XPath '//c';
Although this example itself works, this similar concept is not returning anything in this XML document:
<?xml version="1.0" encoding="utf-8"?>
<Response xmlns="http://schemas.microsoft.com/search/local/ws/rest/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Copyright>Copyright © 2012 Microsoft and its suppliers. All rights reserved. This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.</Copyright>
<BrandLogoUri>http://dev.virtualearth.net/Branding/logo_powered_by.png</BrandLogoUri>
<StatusCode>200</StatusCode>
<StatusDescription>OK</StatusDescription>
<AuthenticationResultCode>ValidCredentials</AuthenticationResultCode>
<TraceId>985236ecd4b04793ac26f72a218a3876|LAXM001505|02.00.127.100|</TraceId>
<ResourceSets>
<ResourceSet>
<EstimatedTotal>1</EstimatedTotal>
<Resources>
<TrafficIncident>
<Point>
<Latitude>41.82048</Latitude>
<Longitude>-88.20378</Longitude>
</Point>
<IncidentId>1</IncidentId>
<LastModifiedUTC>2012-05-01T16:17:15.663Z</LastModifiedUTC>
<StartTimeUTC>2011-05-01T19:46:00Z</StartTimeUTC>
<EndTimeUTC>2012-11-11T14:00:00Z</EndTimeUTC>
<Type>Construction</Type>
<Severity>Minor</Severity>
<Verified>true</Verified>
<RoadClosed>false</RoadClosed>
<Description>description here</Description>
<DetourInfo />
<LaneInfo>lane blockages possible</LaneInfo>
<CongestionInfo />
</TrafficIncident>
</Resources>
</ResourceSet>
</ResourceSets>
</Response>
Does anyone know the proper syntax to select TrafficIncident elements without necessarily specifying the full path?
The elements are in a namespace, so you need to search for them in that namespace. Google for “XPath default namespace”, it’s the number 1 FAQ.