Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用XSL变量-xslt获取值(XPath)_Java_Xml_Xslt - Fatal编程技术网

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>