开发者

how to parse the value from xml through xsl

<block4>
  <tag>
    <name>50K</name>
    &l开发者_运维百科t;value>/001/002/300060000120135670
CREDIT AGRICOLE ASSET MANAGEMENT</value>
  </tag>
</block4>

I need to get output that looks like:

/001/002,/300060000120135670,CREDIT AGRICOLE ASSET MANAGEMENT

I have done like this in XSL, but I didn't get the output I wanted. Can anyone please give me some idea how I could get that output?

<xsl:for-each select ="block4/tag[name = '50K']">
  <xsl:value-of  select="
    concat(
      substring(value,1,8),
      (concat(substring(value,9,'&#13;'),',')),
      substring-after(value,'&#13;')
    )
  " />,<xsl:text/>
</xsl:for-each>


concat takes any number of arguments, no need to nest those calls. Besides, substring takes a beginning and an optional length, not a terminating character. Try something like this instead:

<xsl:for-each select ="block4/tag[name = '50K']">
  <xsl:value-of select="
    concat(
      substring(value, 1, 8), ',',
      substring(substring-before(value,'&#xA;'),9), ',',
      substring-after(value,'&#xA;')
    )
  " />,<xsl:text/>
</xsl:for-each>

I've kept the final comma in, which is one of the many things you did not really specify.


Why not use XSLT 2.0 tokenize() function? See Here

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜