2017-04-25 27 views
0

我目前在阅读某些XML数据源时遇到困难。在XML报告生成器中处理顺序结果集

通常情况下,我已经处理了这种结果:

<resultset> 
    <result> 
     <name>...</name> 
    </result> 
    <result> 
     <name>...</name> 
    </result> 
    <result> 
     <name>...</name> 
    </result> 
</resultset> 

其中的每个结果的结果集返回相同的名字,很容易被收集。

然而,在一个新的结果回报,他们进来的形式:

<resultset> 
    <_1> 
     <name>...</name> 
    </_1> 
    <_2> 
     <name>...</name> 
    </_2> 
    <_3> 
     <name>...</name> 
    </_3> 
</resultset> 

这里返回的每个结果是一个连续的ID,下面的下划线。

我不知道如何最好地利用这些成果,我与查询尝试:

<Query> 
    <ElementPath> 
      <ElementPath IgnoreNamespaces="true"> 
         apiresult{}/resultset{}/_1 
      </ElementPath> 
    </ElementPath> 
</Query> 

不幸的是,这只会带回的第一个结果 - 是有某种形式的通配符的我可以使用取代'_1'来带回_2,_3等等?

我曾尝试使用通配符,例如,

apiresult{}/resultset{}/_* 

或者

apiresult{}/resultset{}/_% 

但是,没有运气...

使用一个星号,这是行不通的,我收到错误:

apiresult{}/resultset{}/* 


The Value expression for the text box ‘id’ refers to the field ‘id’. Report item expressions can only refer to fields within the current dataset scope or, if inside an aggregate, the specified dataset scope. Letters in the names of fields must use the correct case. 
---------------------------- 
The definition of the report '' is invalid. 
---------------------------- 
An error occurred during local report processing. 

回答

1

Yo ü意思是这样的:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="resultset//name"> 
    <each><xsl:value-of select="name(..)" />: <xsl:value-of select="."/></each> 
    </xsl:template> 
</xsl:stylesheet> 

,输出:

<each>_1: ...</each> 
    <each>_2: ...</each> 
    <each>_3: ...</each> 
+0

那将是非常美妙的!不过,有没有这种整合结构报告Builder使用里面的方法吗? –

+0

对不起,我不知道Report Builder。这只是xslt-答案。 – Gerriet