如何使用XML循环访问ArrayList?

问题描述:

我目前正在:如何使用XML循环访问ArrayList?

<xsl:for-each select="//asdf/@abc"> 
    <span><xsl:value-of select="."/></span> 
</xsl:for-each> 

我在许多论坛上,人们可以使用.来表示数组属性所看到的,但它不是我的情况下工作。

要说清楚,我试图避免重组DTO。你会怎么做呢?

谢谢!


更新

好吧,我的问题的一部分是XML的newbish知识。我重构了xml是如何形成的以获得适当的节点。但我仍然不知道如何xsl - 如果他们。这是XML:

<wrapper> 
     <node> 
      <one>one</two> 
      <two>two</two> 
      <three>three</three> 
     </node> 
</wrapper> 

而我想要做的就是显示三个值。我试图:

<xsl:value-of match="wrapper"> 
    <xsl:for-each select="node"> 
     <xsl:value-of select="three"/> 
    </xsl:for-each> 
</xsl:value-of> 

但它是坏的语法,我认为。如果有任何基本概念或简单的技巧来实现这一点,任何输入都会很棒!

再次感谢。


更新

需要明确的是,有多个节点和包装本身是嵌套:

<outerwrapper> 
    <wrapper> 
     <node> 
      <one>one</two> 
      <two>two</two> 
      <three>three</three> 
     </node> 
     <node> 
      <one>one</two> 
      <two>two</two> 
      <three>three</three> 
     </node> 
    </wrapper> 
</outerwrapper> 
+3

请张贴重复的例子(含输入和预期输出) - 见:[MCVE]。 –

+0

你有'一个'在你的XML - 这是行不通的。 –

但它是坏的语法,我认为。

是的。这部分:

<xsl:value-of match="wrapper"> 

是没有意义的。它应该是:

<xsl:template match="wrapper"> 

当然,你可以缩短整个事情:

<xsl:template match="/wrapper"> 
    <xsl:value-of select="node/three"/> 
</xsl:template> 
+0

好吧,但事情是,有多个节点,我选择包装的方式是这样的:'' – pward

+0

@pward你被问到提供一个**完整的**例子。如果答案不符合你所做的**没有告诉我们的情况,请不要感到惊讶。 - 现在我很困惑,因为你有两个(或更多?)''节点 - 并且你没有告诉我们你想选择哪一个节点。在任何情况下,表达式'// outerwrapper/@ wrapper'都不会在你的例子中选择任何东西。 –

+0

不用担心!我很欣赏得到答复。谢谢! – pward