具有条件的XPath Selector由JSON值计算

时间:2019-01-02 16:59:44

标签: xpath

是否可以定义一种XPath选择器,该选择器对我从中选择的JSON中的多个值使用条件运算?

考虑以下示例JSON:

{
    "values": [
        //previous entries
        {
            "value" : "50",
            "date" : "29-11-2018"
        },      {
            "value" : "100",
            "date" : "30-11-2018"
        },      {
            "value" : "150",
            "date" : "1-12-2018"
        },
        //following entries
    ]
}

说,我只想选择任何月份的最后一天的值(出于示例的原因,请忽略从Dec到Jan的值)。我的想法是如果当月t1-当月t0> 0

选择值

是否存在使用XPath计算此条件的语法?

1 个答案:

答案 0 :(得分:0)

根据此链接,XPath

  

[...]一种用于处理XML文档各部分的语言,旨在供XSLT和XPointer一起使用。

但是您想解决JSON格式...
幸运的是,有一个const payload = new HttpParams(); payload.set('username', username); payload.set('password', password); this.http.post(url, payload); 库在CodeProject:JUST - JSON Under Simple Transformation上实现了XPath变体,这是JSON的XSLT版本,当然也包含XPath功能。

  

JUST代表简单转换下的JSON.XSLT是使用简单转换语言来转换XML文档的一种非常流行的方式。
  现在越来越多的应用程序将JSON用作数据格式,因为它比XML更为简单且不那么庞大。
  但是,没有很简单的方法来转换JSON文档。
  我已经在.NET中创建了一个库,该库可以使用非常简单的转换语言来转换JSON文档。
  这是尝试为JSON创建XSLT并行。

因此,此软件包的一部分实现了XPath-1.0(?)功能。
隔离此部分,或使用整个程序包。


  

我的想法是选择值C#

一种用于(部分)解决方案的方法可能看起来像这样(我无法测试并完成此操作,但您应该明白这一点。):

if month-in-date t1 - month-in-date t0 > 0