Java 使用XSL变量-xslt获取值(XPath)
在尝试分析以下Java 使用XSL变量-xslt获取值(XPath),java,xml,xslt,Java,Xml,Xslt,在尝试分析以下xml时 <root> <SelectValue>One</SelectValue> <!-- Tends to Vary --> <SubRoot> <!-- Iterate elements inside it using [ SelectValue] --> <One>One</One> <Two>Two</Two> <Thr
xml
时
<root>
<SelectValue>One</SelectValue> <!-- Tends to Vary -->
<SubRoot> <!-- Iterate elements inside it using [ SelectValue] -->
<One>One</One>
<Two>Two</Two>
<Three>Three</Three>
</SubRoot>
</root>
检索一个空的html标记
,而我预期如下所示
<table>
<thead>
<th>One</th>
</thead>
<tbody>
<tr>
<td>one</td>
</tr>
<tbody>
</table>
一
一
我正在尝试传递
中的值以获取
中的节点
有什么想法吗?我不知道您引用的错误消息(它似乎不是英语),但我在尝试运行代码时确实遇到了错误。原因是您的变量名无效;您需要更改:
<xsl:variable name="$columns" select="..."/>
哪一个给定的输入示例将返回:
<tr>
<td>One</td>
</tr>
一
在xsl:for each select=“SubRoot”中,SubRoot是上下文节点,因此您不应该选择下一个SubRoot。所以你想要
<xsl:for-each select="SubRoot">
<tr>
<td>
<xsl:value-of select="@*[local-name()=$columns]"/>
</td>
</tr>
这是您收到的完整准确的错误信息吗?不。这是我从另一个问题中得到的错误消息,通过在定义时删除$
解决了错误。请始终引用您得到的准确完整的错误消息。我认为您需要添加预期的输出,并用几句话解释你在这里想做什么。谢谢你的回答,正如你所说,它没有选择任何东西。更新了我的问题,请看一看
<xsl:template match="/root">
<xsl:variable name="columns" select="SelectValue"/>
<tr>
<td>
<xsl:value-of select="SubRoot/*[local-name()=$columns]"/>
</td>
</tr>
</xsl:template>
<tr>
<td>One</td>
</tr>
<xsl:for-each select="SubRoot">
<tr>
<td>
<xsl:value-of select="@*[local-name()=$columns]"/>
</td>
</tr>