我目前在阅读某些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>
不幸的是,这只会带来第一个结果 - 是否有某种通配符我可以代替&#39; _1&#39;带回_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.
答案 0 :(得分:1)
你的意思是这样的:
<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>