小编Vig*_*nan的帖子

要在xsl中进行子串

您好我正在使用XSL将一个XML转换为另一个XML.

我面临的问题是标签内部的值是10feb2011 ie <date>10feb2011</date>.

我需要输出为:

 <date>10</date>
 <month>feb</month>
 <year>2011</year> 
Run Code Online (Sandbox Code Playgroud)

所以我使用了substring功能,但无法让它工作.

我的XML看起来像

<ArrivalDateTime>
  <Date>20feb2011<Date>
</ArrivalDateTime>
Run Code Online (Sandbox Code Playgroud)

它应该转换为这种格式

 <ArrivalDateTime>
   <dayOfMonth>10</dayOfMonth> 
   <month>feb</month> 
   <year>2011</year> 
 </ArrivalDateTime>
Run Code Online (Sandbox Code Playgroud)

下面是我写的XSL

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited by XMLSpy® -->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">        
<xsl:text><![CDATA[<ArrivalDateTime>]]></xsl:text>          
<xsl:text><![CDATA[<dayOfMonth>]]></xsl:text>
<xsl:value-of select='substring("<xsl:value-of select="/ArrivalDateTime/Date"/>",1,2)'/>
<xsl:text><![CDATA[</dayOfMonth>]]></xsl:text>
<xsl:text><![CDATA[<month>]]></xsl:text>
<xsl:value-of select='substring("<xsl:value-of select="/ArrivalDateTime/Date"/>",3,3)'/>
<xsl:text><![CDATA[</month>]]></xsl:text>
<xsl:text><![CDATA[<year>]]></xsl:text>
<xsl:value-of select='substring("<xsl:value-of select="/ArrivalDateTime/Date"/>",5,4)'/>
<xsl:text><![CDATA[</year>]]></xsl:text>
<xsl:text><![CDATA[</ArrivalDateTime>]]></xsl:text></xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

xml xslt

2
推荐指数
2
解决办法
3万
查看次数

标签 统计

xml ×1

xslt ×1