【发布时间】:2012-06-07 13:10:09
【问题描述】:
我有以下 xml:
<?xml version="1.0" encoding="UTF-8"?>
<abc1 formName="Form">
<Level1>
<Element1>ZZZ</Element1>
<Element2>
<SubElement1>Apples</SubElement1>
<SubElement2>Oranges</SubElement2>
<SubElement3>Pears</SubElement3>
<SubElement4>Blueberries</SubElement4>
<SubElement5>Milkshakes</SubElement5>
</Element2>
</Level1>
<Level1>
<Element1>XXX</Element1>
<Element2>
<SubElement1>Apples</SubElement1>
<SubElement2>Oranges</SubElement2>
<SubElement3>Kiwifruit</SubElement3>
<SubElement4>Blueberries</SubElement4>
<SubElement5>Soda</SubElement5>
</Element2>
</Level1>
</abc1>
我需要做的是查看一些节点中的值,确定它们是否不同,如果不同,编写一些不同的 html 代码,每个部分之间有一个分页符。
所以,我需要比较<Element1> 的值,看看它们是否不同。 <Element1> 值可以是任何文本,并且在 xml 中 <Element1>tags 的数量可以是无限的。
所以在这种情况下,我们有两个不同的<Element1> 值:“ZZZ”和“XXX”。
如果有两个'',则如下所示:
<xsl:choose>
<xsl:when test="differentvalues = 'true'">
<!-- SomeHTMLCode!-->
<p style="page-break-after: always"/>
<!-- SomeHTMLCode!-->
</xsl:when>
<xsl:otherwise><!-- SomeHTMLCode!--></xsl:otherwise>
</xsl:choose>
但是使用for循环来搜索xml,和类似的东西
<xsl:choose>
<xsl:when test="differentvalues = 'true'">
<!-- SomeHTMLCode!-->
<p style="page-break-after: always"/>
<!-- SomeHTMLCode!-->
<p style="page-break-after: always"/>
<!-- SomeHTMLCode!-->
</xsl:when>
<xsl:otherwise><!-- SomeHTMLCode!--></xsl:otherwise>
</xsl:choose>
如果存在三个不同的</Element1> 值。
我什至不确定这是否可以做到。 提前感谢您为我提供的任何帮助。
【问题讨论】:
-
这不是同样的问题吗?
-
我想它是相似的,但我使用 xslt 的时间不长,并认为它们有点不同。