首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XSLT:输出中的重复节点

XSLT:输出中的重复节点
EN

Stack Overflow用户
提问于 2018-01-31 23:59:01
回答 1查看 54关注 0票数 0

我正在为一个简单的xsl转换而苦苦挣扎,我不能找出为什么我的输出结果中有两个元素。下面是我的代码:

xsl-stylesheet表:

代码语言:javascript
复制
<xsl:template match="/">
    <xsl:text>[{</xsl:text> 
    <xsl:apply-templates/>
    <xsl:text>}]</xsl:text> 
</xsl:template>

<xsl:template match="Title">
    <xsl:text>{</xsl:text>        
    <xsl:value-of select="@id"/>     
    <xsl:apply-templates select="descendant::Title"/>            
    <xsl:text>}</xsl:text>    
</xsl:template>    

xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<Start>
    <Title id="1">
        <Title id="2">Bob</Title>
        <Age>39</Age>
        <Address>
            <Title id="3">10 Idle Lane</Title>
            <City>Yucksville</City>
            <PostalCode>xxxyyy</PostalCode>
        </Address>
    </Title>
    <Title id="4">
        <Title id="5">Bill</Title>
        <Age>39</Age>
        <Title id ="6">
            <Title id="7">10 Idle Lane</Title>
            <City>Yucksville</City>
            <PostalCode>xxxyyy</PostalCode>
            <Title id="8">10 Idle Lane</Title>
        </Title>
        <Title id="9">10 Idle Lane</Title>
    </Title>    
</Start>

输出:

代码语言:javascript
复制
[{
    {1{2}{3}}
    {4{5}{6{7}{8}}{7}{8}{9}}    
}]

我的输出中没有预期的元素是最后一个数字:{8}{9}。我猜这与后代轴选择器有关。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-01 00:19:34

则后代轴选择器将选择所有子对象和子对象,依此类推。因此,您只需将模板应用于子项。这应该是可行的:

代码语言:javascript
复制
<xsl:template match="/">
    <xsl:text>[{</xsl:text>
    <xsl:apply-templates/>
    <xsl:text>}]</xsl:text>
</xsl:template>

<xsl:template match="Title">
    <xsl:text>{</xsl:text>
    <xsl:value-of select="@id"/>
    <xsl:apply-templates />
    <xsl:text>}</xsl:text>
</xsl:template>

<xsl:template match="text()" />
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48546348

复制
相关文章

相似问题

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