2012-05-08 3 views
1

Так скажем, у меня есть простой XML-документ, как это:XPath // оператор не работает

<a> 
    <b> 
    <c>blah</c> 
    <c>blah</c> 
    <d>blargh</d> 
    </b> 
</a> 

Я хочу, чтобы выбрать «C» элементы.

Вот что я считаю, должны работать:

Select-Xml -Xml $XmlDoc -XPath '//c'; 

Хотя этот пример сам по себе работает, это похоже концепция ничего не возвращает в этом XML-документ:

<?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> 

Кто-нибудь знает правильный синтаксис для выбора TrafficIncident элементов без указания полного пути?

+0

Это все, что вам нужно, чтобы получить узлы c. –

+5

http://huddledmasses.org/xpath-and-namespaces-in-powershell/ – mzjn

+1

Вы, очевидно, забываете пространства имен ;-) – Joey

ответ

1

Элементы находятся в пространстве имен, поэтому вам нужно искать их в этом пространстве имен. Google для «пространства имен XPath по умолчанию», это номер 1 FAQ.

Смежные вопросы