Watson Data Explorer中两个解析器之间的通信?

时间:2018-08-03 13:57:19

标签: xml parsing xslt-1.0 ibm-watson watson-explorer

我试图在Watson Data Explorer中实现属性文件的概念,在其中我将一些数据(用户名,密码,URL ..)保存在一个解析器中。

1:我在Xml部分下创建了一个解析器。

<parser name="test-properties-parser" modified-by="surya@test" max-elt-id="7" modified="1532098188">  <process-xsl><![CDATA[

 <xsl:template match="/">

 <test-port>1521</test-port>

 <test-username>testuser</test-username>

 <test-password>[[vcrypt/3]]xqvC0W+xJ33fY+C/9cjiWJ9RyuzPffOz|zB2EHEd8GWMdP</test-password>

 <cookie-username>testadmin</cookie-username>

 <cookie-password>testadmin1</cookie-password>

       </xsl:template>
 ]]></process-xsl>
 </parser>

我将使用集合中解析器中定义的所有详细信息,简而言之,我将在一个地方定义所有常见和机密的细节,并在需要的地方使用。

2:现在,我使用数据库(自定义SQL)作为种子创建了一个集合,并从上面定义的解析器中获取了所有信息(主机,端口等)。

EX:主机:<value-of select="viv:process-xml(viv:repository-get('parser','test-properties-parser'))//test-host" />

这将为我提供上面解析器中提供的主机详细信息,并且对于所有字段都可以正常工作。

问题陈述:当我在Cookie中使用相同概念时会出现问题(配置->爬行选项卡->全局设置-> HTTP特定-> Cookie)。

<parse url="http://abc.test.com/cs/login/" method="POST" ignore-http-status="ignore-http-status">

      //Hard coded values : working fine 

     /*  <parse-param name="j_username" value="TestUser" />
       <parse-param name="j_password" value="TestPassword" /> */

  //Get Dynamic values from repository :

       parse-param name="j_username"><value-of select="viv:process-xml(viv:repository-get('parser','test-properties-parser'))//cookie-username" /></parse-param>
       <parse-param name="j_password"><value-of select="viv:process-xml(viv:repository-get('parser','test-properties-parser'))//cookie-password" /></parse-param>
        <parse-param name="j_character_encoding" value="UTF-8" />
             <parser type="html-xsl"><![CDATA[
             <xsl:template match="/">
             <xsl:value-of select="substring-before(viv:current-node()/@cookie-jar,';')" />         
         </xsl:template> 

 ]]></parser>
 </parse>

由于两个参数(用户名,密码)均为空,因此无法抓取该URL。

函数: viv:process-xml(viv:repository-get('parser','test-properties-parser'))//cookie-username如果在内部解析标记中使用,则返回null。

我在这里可以使用其他功能吗?或我可以尝试的任何其他方法?

0 个答案:

没有答案