首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xml xslt特定数据显示

xml xslt特定数据显示
EN

Stack Overflow用户
提问于 2013-09-23 16:17:33
回答 1查看 76关注 0票数 0

我正在尝试实现以下输出:即lhs列只显示标题一次。记录被填充到第二栏。

代码语言:javascript
复制
PCP                 Jones, Mary
Care Manager:       abc1 (type1)
                    abc2 (type2)

我的xml是:

代码语言:javascript
复制
<careTeames>
<careteame><PCP>JONES,MARY</PCP><type>Ped - Under 5</type>
<caremanagers>
    <caremanager>
        <name>Willis,Sam</name>
        <type>Internal Medicine</type>
    </caremanager>
    <caremanager>
        <name>Willis,Sam-2</name>
        <type>Internal Medicine-2</type>
    </caremanager>
</caremanagers>
</careteame>
</careTeames>

黏液是:

代码语言:javascript
复制
<table width="100%" cellpadding="2" cellspacing="5">
        <tr>
            <td align="center" width="30%" class="sectionHeader">Care team </td>
        </tr>
        <tr>
            <td align="left" class="sectionBody" valign="top">
                <table class="table1" width="100%" cellpadding="2" cellspacing="5" border="0" >
                <xsl:for-each select="//return/careTeames/careteame">
                    <tr><td>PCP</td><td><xsl:value-of select="PCP"/> (<xsl:value-of select="type"/>) </td></tr><hr/>
                       <xsl:for-each select="caremanagers/caremanager">
                        <tr><td>Care Manager:</td><td><xsl:value-of select="name"/> ( <xsl:value-of select="type"/> )</td></tr>
                        </xsl:for-each> 
                        <hr/>


               </xsl:for-each>

                </table>
            </td>

        </tr>
    </table>

此代码打印:

代码语言:javascript
复制
   | care manager| abc1 (type1) |
   | care manager| abc2 (type2) |

有什么建议吗?

我只希望它是:

代码语言:javascript
复制
| care manager | abc1(type1)  |
|              |  abc2(type2) |
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-23 16:52:03

最简单的方法是在内部position()中放置一个for-each检查。

代码语言:javascript
复制
<xsl:for-each select="caremanagers/caremanager">
  <tr>
    <td>
      <xsl:choose>
        <xsl:when test="position() = 1">Care Manager:</xsl:when>
        <xsl:otherwise>&#160;</xsl:otherwise>
      </xsl:choose>
    </td>
    <td><xsl:value-of select="name"/> ( <xsl:value-of select="type"/> )</td>
  </tr>
</xsl:for-each>

(&#160;是一个不可中断的空间,您可以在&nbsp;中表示与&nbsp;相同的字符,但除非它引用XHTML,否则不能在XML中直接使用该实体引用)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18964116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档