我正在开发一个名为Velocity(现在的IBM Watson Data Explorer)的工具,它使用XSLT作为编程语言来编写转换器来提取数据,我有一种情况,我使用一个XSL变量来保存这么多的值(逗号) - 分隔)。 因为这个Converter无法从XML文件中抓取数据。 我猜它失败了,因为变量持有如此多的数据。
XML示例:
<?xml version="1.0" encoding="UTF-8"?>
<atom:feed xmlns:atom=" " xmlns:wplc=" " xmlns:age=" ">
<atom:entry xml:lang="en">
<atom:id>0111111111</atom:id>
<atom:link href=""/>
<atom:content src=""/>
<wplc:securityId></wplc:securityId>
<atom:author>
<atom:name>2058281</atom:name>
<atom:email>abc@gmail.com</atom:email>
</atom:author>
<atom:category term="Support" scheme="" label="Support"/>
<atom:title xml:lang="en">General Report</atom:title>
<wplc:field id="Role">abc-11,def-103,fgh-31,ijk-111,lmn-91</wplc:field>
<wplc:field id="Country">N/A</wplc:field>
<atom:published>2017-03-02T15:35:48-05:00</atom:published>
<wplc:field id="Store">100,1000,1001,1002</wplc:field>
</atom:entry>
<atom:entry xml:lang="en">
</atom:entry>
<atom:entry xml:lang="en">
</atom:entry>
<atom:entry xml:lang="en">
</atom:entry>
</atom:feed>
根据要求,我们需要创建一个具有角色和商店组合的变量(每个角色将与所有商店相关联)。
例如:abc-11-1000 abc-11-1001 abc-11-1002 def-103-1000 def-103-1001..so on 。 在一个案例中,我们有220个角色(以逗号分隔)和1000个商店(以逗号分隔)。
目前我正在使用两个<xsl:for-each>
(外部和内部)循环来创建该变量,如果值有限,那么它工作正常,但在这种特殊情况下,它失败了,角色和存储的组合很大。< / p>
注意:我没有使用单独的XSL解析器,它是名为Velocity(企业搜索引擎)的工具的一部分。所以它可能是一个工具限制。
但有没有更好的方法来使用XSLT处理这个问题?