GDataXML / Libxml2 XPath concat不起作用

时间:2010-11-26 18:42:32

标签: iphone xml xpath libxml2

我在iPhone上使用GDataXML(在后台使用libxml2)来读取XML文件中的名称列表。

<persons>
    <person id=1>
       <firstname>John<firstname>
       <lastname>Doe<lastname>
    </person>
</persons>

但是当我尝试用

连接first和lastname时
/persons/person/concat(firstname, ' ', lastname)

它不适用于GDataXML。当使用.NET XML库尝试相同的示例或使用AquaPath进行测试时,它可以正常工作。

任何提示或其他替代方案才能让它发挥作用?

1 个答案:

答案 0 :(得分:1)

  

但是当我第一次尝试连接时   姓氏

/persons/person/concat(firstname, ' ', lastname) 
     

它不适用于GDataXML。

LibXML仅实现XPath 1.0

上面的表达式在XPath 1.0中语法不正确(它是一个正确的XPath 2.0表达式)。

  

当   用例子做同样的例子   .NET XML库或使用它进行测试   AquaPath它的工作原理。

您误解了.NET XML (除非您使用的是第三方XPath 2.0处理器,如Saxon,Altova或XQSharp) - .NET未实现XPath 2.0

<强>解决方案

使用以下XPath 1.0表达式:

concat(/*/*/firstname, ' ', /*/*/lastname)