在XPath查询中使用命名空间

时间:2012-10-24 21:00:58

标签: xpath xml-namespaces

我有一个xml文件,我发出了XPath请求。但它只在没有xmlns-namespace的情况下有效。你能帮我添加正确的命名空间限定符(我有错误)吗?

的xml:

<Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'> 
  <EventData> 
    <Data Name="ObjectServer">Security</Data>  
    <Data Name="ObjectType">File</Data>  
    <Data Name="ObjectName">C:\Temp\Project1.txt</Data> 
  </EventData> 
</Event>

的XPath:

*[EventData[Data[@Name="ObjectName" and (ends-with(text() ,".exe") or ends-with(text() ,".txt"))]]]

P.S。我正在使用C ++。我的代码基于msdn的example。但我认为这并不重要,因为我正在使用在线XPath tester检查此请求。

感谢。

1 个答案:

答案 0 :(得分:0)

试试这个:

//*[local-name()='EventData' and ./*[local-name()='Data']
[@Name="ObjectName"and 
(ends-with(text() ,".exe") or ends-with(text() ,".txt"))]]