我们有一个XML文件位于某个网站上,并以这样的方式查看(机密部分被删除)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<feed xml:base="https://somewebsite.com/crm/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
<title type="text">Accounts</title>
<id></id>
<updated>2016-02-04T08:36:56Z</updated>
<link rel="self" title="Accounts" href="Accounts" />
<entry>
<title type="text"></title>
<updated>2016-02-04T08:36:56Z</updated>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:Type>A</d:Type>
<d:UniqueTaxpayerReference m:null="true" />
<d:VATLiability m:null="true" />
<d:VATNumber m:null="true" />
<d:Website m:null="true" />
</m:properties>
</content>
</entry>
<link rel="next" href="https://somewebsite.com/Accounts?$skiptoken=guid'ee6bc390-a8ac-4bbd-8a4d-0a1f04ab9bd3'" />
</feed>
我们使用新的Rest连接器从此XML文件中获取数据。 XML具有分页功能,您可以使用此xml文件底部的链接加载接下来的60个条目。
我遇到的问题是,在REST连接器中,我们想要使用这些设置启用分页:
分页类型:Next URL
下一个网址字段路径:
/*[name()="feed"]/*[name()="link"][contains(@rel,"next")]/@href
它似乎不起作用......
旁注:XML文件有名称空间,所以我需要以这种方式定位元素而不是/ feed / link /...
我使用Xpath语法来定位链接href,但也许这不是要走的路?或者REST连接器可能没有使用Xpath语法?
真的希望有人能帮帮我!
答案 0 :(得分:1)
实际上,事实证明这似乎是由于“Qlik REST Connector 1.0”中的“错误”,因此分页不起作用。
但有一个解决方法:
1)确保Qlik REST Connector 1.0连接对话框的NextUrl设置为:
feed/link/attr:href
2)在使用SELECT按钮并完成向导后生成SQL时,您必须修改如下所示的子SELECT:
.....
(SELECT
"attr:rel" AS "rel",
"attr:title" AS "title",
"attr:href" AS href,
"__FK_link"
FROM "link" FK "__FK_link"),
.....
在第05行,您必须删除文本AS href。
所以看起来应该是这样的:
.....
(SELECT
"attr:rel" AS "rel",
"attr:title" AS "title",
"attr:href",
"__FK_link"
FROM "link" FK "__FK_link"),
....
3)找到从该子选择加载的LOAD语句,其中RESIDENT [MasterREST在加载脚本中进一步向下,并确保对href的引用更改为[attr:href] - 否则您将得到一个加载时出错信息。
更改后应该如下所示:
[link]:
LOAD [rel],
[title],
[attr:href],
[__FK_link] AS [__KEY_feed]
RESIDENT RestConnectorMasterTable
WHERE NOT IsNull([__FK_link]);
答案 1 :(得分:0)
这对我有用:
/*[name()='feed']/*[name()='link'][@rel='next']/@href
你的也应该工作,也许你使用的任何东西都不同意双引号而不是单引号。