2012-05-08 119 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

元素位于命名空间中,因此您需要在该命名空间中搜索它们。谷歌的“XPath默认命名空间”,这是数字1常见问题。