我在使用 xpath 和 GDataXML 解析 XML 时遇到问题——使用 xpath 测试器,我的字符串似乎应该可以工作,但我认为在命名空间中添加会干扰它的工作。
XML:
<?xml version="1.0" encoding="utf-8"?>
<Autodiscover xmlns='http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006'>
<Response xmlns='http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a'>
<Account>
<Protocol>
<Type>EXPR</Type>
<EwsUrl>https://server.my.dom/EWS/Exchange.asmx</EwsUrl>
</Protocol>
</Account>
</Response>
</Autodiscover>
我尝试解析它如下:
NSDictionary *namespaceMappings = [NSDictionary dictionaryWithObjectsAndKeys:@"http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a", @"response", nil];
NSArray *idList = [doc nodesForXPath:@"//response:Protocol[Type='EXPR']/EwsUrl" namespaces:namespaceMappings error:nil];
我还尝试使用以下内容省略命名空间:
NSArray *idList = [doc nodesForXPath:@"//Protocol[Type='EXPR']/EwsUrl" error:nil];
在这两种情况下,idList 都有 0 个成员。我感觉好像我现在只是在墙上扔东西,看看有没有东西粘住。有人能给我指路吗?
谢谢!