2013-08-02 27 views
1

XSLT - 在每一个第n个字符分割字符串家伙

我想创建一个XSLT 2.0样式表来执行以下操作:

拆分的XML元素下方值:

<sample>Please Move the asset as below 

Asset Name: My Monitor 40 inch_123456789123 
Asset Serial Number: 123456789123 

Current Details: 
Costcenter: 1234-123456 MY COST CENTRE 
Location: 12 - 1234 - 1234 - MY COST ADDRESS,12 MY STR.,10TH FLOOR,,CITY,Country Name 

Destination Details: 
Cost Center: 1234-12345 : 5678-91234 Some Place</sample> 

每第70个字符,然后将前9个结果分配给固定的,配置的新元素名称,并丢弃任何剩余的匹配项。例如:

<humpty>first 70chars</humpty> 
<dumpty>second70chars</dumpty> 
<sat>third70chars</sat> 
etc... 

我考虑过使用标记大小但被卡住了,因为它需要一个字符串模式来匹配。我想过使用子字符串,但我不确定格式。

任何意见是赞赏!

+0

你可以用'分析,string'。不过,我不知道在哪里,你想从 –

+0

感谢马丁得到像'humpty'新的元素名称。新的元素名称将在样式表中预先配置并始终保持不变。为了举例,我使用了“矮胖”等。 – Scrat

回答

1

如果知道元素名称,只是要提取的70个字符的子串,然后http://www.w3.org/TR/xpath/#function-substring应该做的:

<xsl:template match="sample"> 
    <humpty><xsl:value-of select="substring(., 1, 70)"/></humpty> 
    <dumpty><xsl:value-of select="substring(., 71, 70)"/></dumpty> 
    <sat><xsl:value-of select="substring(., 141, 70)"/></sat> 
    ... 
</xsl:template> 
相关问题