簡體   English   中英

使用xslt 1.0從xml中刪除屬性,並使其值逗號分隔

[英]Remove attributes from xml using xslt 1.0 and make it values comma separated

這是我從臨時表生成的xml

 SELECT DISTINCT *     
     FROM #tblCustomer Lines
     ORDER BY CustomerNumber
     FOR XML PATH('CustomerDetails') 

生成的xml:

 <CustomerDetails>
    <CustomerNumber>1</CustomerNumber>
    <Status>Active</Status>
    <CustomerType>Individual</CustomerType>
    <Title>Mr</Title>
 </CustomerDetails>
 <CustomerDetails>
     <CustomerNumber>2</CustomerNumber>
     <Status>Active</Status>
     <CustomerType>Individual</CustomerType>
     <Title>Miss</Title>
 </CustomerDetails>

我想使用xslt刪除所有元素,並使其以逗號分隔。

預期產量:

 <Lines>
    <Line Number="1"  Data="1,Active,Individual,Mr" />
    <LineNumData="2" Data="2,Active,Individual,Mr" />

</Lines>

任何幫助將不勝感激。 TIA

該解決方案與您提到的輸出有所不同,但是我想您可以自己從此處繼續進行,以使其滿足您的確切需求。 要獲得以下輸出,可以使用這兩個模板

<xsl:template match="/">
    <Lines>
        <xsl:apply-templates select="node()|@*" />
    </Lines>
</xsl:template>

<xsl:template match="CustomerDetails">
    <Line>
        <xsl:attribute name="number"><xsl:number /></xsl:attribute>
        <xsl:value-of select="concat(CustomerNumber,',',Status,',',CustomerType,',',Title)" />
    </Line>
</xsl:template>

number屬性通過<xsl:number />在XML文件中使用CustomerDetails的索引。 因此它不同於CustomerNumber

輸出:

<Lines>
    <Line number="1">1,Active,Individual,Mr</Line>
    <Line number="2">2,Active,Individual,Miss</Line>
</Lines>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM