使用libxml2(Kissxml和GDataxml)支持XPath字符串函数

时间:2012-06-23 06:54:23

标签: ios xml xpath gdataxml kissxml

我一直在尝试使用KissXML和GDataXml项目执行xpath 1.0字符串函数 concat()但没有成功(总是评估为无结果)。这些在W3C规范中记录为here

请注意,非功能xpath的评估正确。

任何人都可以使用libxml2和/或iOS平台上面的XML项目来确认是否支持字符串函数,例如concat()substring()等?如果没有,是否有任何方法可以使用xpath字符串函数(如concat())查询iOS上的xml文档?

更新

以下是使用KissXML进行测试的片段。我的简单XML结构如下。目标是连接第一个和姓氏。

<?xml version="1.0"?>
<entity>
  <properties>
    <keyValue>
      <key>firstname</key>
      <value>John</value>
    </keyValue>
    <keyValue>
      <key>surname</key>
      <value>Smith</value>
    </keyValue>
  </properties>
</entity>

来源:

NSError *error;
NSString *testData = @"<?xml version=\"1.0\"?><entity><properties><keyValue><key>firstname</key><value>John</value></keyValue><keyValue><key>surname</key><value>Smith</value></keyValue></properties></entity>";        
DDXMLDocument *kDoc = [[DDXMLDocument alloc] initWithXMLString:testData options:0 error:&error];                
NSArray *test = [kDoc nodesForXPath:@"concat(//keyValue[key='firstname']/value,//keyValue[key='surname']/value)" error:&error];

我还尝试了一个带有静态字符串的简单xpath作为一个简单的函数测试:

NSArray *test = [kDoc nodesForXPath:@"concat('Hello', ' ', 'World')" error:&error];

但这也无法返回任何结果。

谢谢!

0 个答案:

没有答案