Java 是否在XSLT中显示重复标记?

Java 是否在XSLT中显示重复标记?,java,xml,xslt,Java,Xml,Xslt,我正在处理一个CV项目,使用XML存储CV,使用XSLT和Java将其转换为HTML 以下是XML文件的格式 <CVs> <cv> <name>...</name> <dob>...</dob> <experience> <job>.....</job> <job>.....</job> </experience> </cv> <cv&

我正在处理一个CV项目,使用XML存储CV,使用XSLT和Java将其转换为HTML

以下是XML文件的格式

<CVs>
<cv>
<name>...</name>
<dob>...</dob>
<experience>
<job>.....</job>
<job>.....</job>
</experience>
</cv>
<cv>
<name>...</name>
<dob>...</dob>
<experience>
<job>.....</job>
<job>.....</job>
<job>.....</job>
<job>.....</job>
<job>.....</job>
</experience>
</cv>
</CVs>

...
...
.....
.....
...
...
.....
.....
.....
.....
.....
重复显示
的正确方法是什么?我只得到一个
,而第一个

祝你今天愉快 约翰


非常感谢您的回复。:)

我尝试了第一种解决方案。它起作用了。但我想要的是显示所有的HTML段落格式

首先显示1号,然后是段落,然后是2号,依此类推。 像-

第1项作业

第二份工作

我使用了以下方法,但未能获得所需的结果

<xsl:for-each select="Job">
<p style="color:red">
<xsl:if test="position() &gt; 1">,</xsl:if>
<xsl:value-of select="."/>
</p>
</xsl:for-each> 

,

使用上面的代码,我得到如下输出-

<p>Job No1 job No2..</p>
第1项工作第2项工作

我正在使用XSLT1.0,我在第一篇文章中提到了这一点。很抱歉,但你已经判断了。。Hmmm拥有丰富的XSLT经验。。太好了

你能再帮我一次吗

祝你今天愉快 约翰


LarsH-Right说,我应该在第一篇文章中自己完成这一切,但不知怎么的,我做不到。现在我已经练习了发帖技巧,以后会正确地发帖。:)

我也接受了马丁的回答。它完成了任务,只需稍加修改,我就得到了我第二篇文章的答案

非常感谢你们所有人

祝你今天愉快
John

我想问题在于XSLT1.0(或XSLT2.0处理器以向后兼容模式运行XSLT1.0样式表)的代码


输出第一个作业元素的字符串值。如果您想输出所有作业元素的值,那么在XSLT1.0中,您需要使用

<xsl:for-each select="job">
  <xsl:if test="position() &gt; 1">, </xsl:if>
  <xsl:value-of select="."/>
</xsl:for-each>

, 
带有工作要素模板,例如

<xsl:template match="job">
  <xsl:if test="position() &gt; 1">, </xsl:if>
  <xsl:value-of select="."/>
<xsl:template>

, 

使用XSLT 2.0时,您只需要

我想问题在于XSLT 1.0(或XSLT 2.0处理器以向后兼容模式运行XSLT 1.0样式表)的代码


输出第一个作业元素的字符串值。如果您想输出所有作业元素的值,那么在XSLT1.0中,您需要使用

<xsl:for-each select="job">
  <xsl:if test="position() &gt; 1">, </xsl:if>
  <xsl:value-of select="."/>
</xsl:for-each>

, 
带有工作要素模板,例如

<xsl:template match="job">
  <xsl:if test="position() &gt; 1">, </xsl:if>
  <xsl:value-of select="."/>
<xsl:template>

, 

使用XSLT2.0时,您所需要的只是

这个问题太模糊,无法尝试一个有用的答案。请显示您当前的XSLT代码。(我认为你已经清楚地说明了你需要什么样的结果,以及你目前得到的结果。)@LarsH:它在那里,但没有格式化。OP说:“重复显示
的正确方式是什么?”但是
的格式没有按应有的方式设置。我猜@Martin Honnen可以编辑这个问题。我现在正在这么做。@Dimitre:visible的
有帮助,但我是在问他的XSLT代码。@LarsH:每当有人说他们只得到第一个节点时,它几乎是100%比
:)@Dimitre:yeah。我只是认为,根据他的代码的上下文,用细节来纠正问题会更容易,而不是花时间做一些对他来说可能很难应用的一般性解释——或者如果他的问题更加微妙,可能根本不适用。原则上,我觉得在询问“我的代码有什么问题?”时,展示一些代码是一个基本的考虑。我认为约翰的新回答证实了这一点,马丁的回答并不完全适用于他的代码。。。这个问题太模糊了,无法尝试一个有用的答案。请显示您当前的XSLT代码。(我认为你已经清楚地说明了你需要什么样的结果,以及你目前得到的结果。)@LarsH:它在那里,但没有格式化。OP说:“重复显示
的正确方式是什么?”但是
的格式没有按应有的方式设置。我猜@Martin Honnen可以编辑这个问题。我现在正在这么做。@Dimitre:visible的
有帮助,但我是在问他的XSLT代码。@LarsH:每当有人说他们只得到第一个节点时,它几乎是100%比
:)@Dimitre:yeah。我只是认为,根据他的代码的上下文,用细节来纠正问题会更容易,而不是花时间做一些对他来说可能很难应用的一般性解释——或者如果他的问题更加微妙,可能根本不适用。原则上,我觉得在询问“我的代码有什么问题?”时,展示一些代码是一个基本的考虑。我认为约翰的新回答证实了这一点,马丁的回答并不完全适用于他的代码。。。他现在正在展示。很好地理解了用户的意思+1了解用户的意思很好+1.