我试图将时区值从一个系统转换为另一个值以推送到另一个系统。XSLT根据枚举检查值或默认为别的
所有的好我希望他们有使用州名而不是城市名称,但没关系,这是一个整合,不能在两个系统中相互匹配更改。
我正在使用XSLT将1个xml文档转换为另一个来执行此操作。
在源系统中的时区字符串下列之一:
Australia/Adelaide
Australia/Brisbane
Australia/Canberra
Australia/Darwin
Australia/Hobart
Australia/Melbourne
Australia/Perth
Australia/Sydney
在目标系统中的时区设置为按照以下:
Australia/Adelaide
Australia/Brisbane
Australia/Canberra,Melbourne,Sydney
Australia/Darwin
Australia/Hobart
Australia/Perth
我知道我可以只使用一个<xsl:choose>
和使用<xs:when>
等来确定每个字符串,但想了解如何比较从源代码来的反对枚举源类型,如果它存在使用它,如果它不存在,则使用默认值。这可能吗。
我在XSLT枚举每个目标系统定义为我们需要的:提前
<xs:simpleType name="timeZoneType">
<xs:restriction base="xs:string">
<xs:enumeration value="Australia/Canberra,Melbourne,Sydney" />
<xs:enumeration value="Australia/Adelaide" />
<xs:enumeration value="Australia/Brisbane" />
<xs:enumeration value="Australia/Darwin" />
<xs:enumeration value="Australia/Hobart" />
<xs:enumeration value="Australia/Perth" />
</xs:restriction>
</xs:simpleType>
干杯任何帮助
请注明XSLT 1.0或2.0。 –
顺便说一句:“*我希望他们有使用过的州名称而不是城市名称*”你应该看看http://en.wikipedia.org/wiki/Zoneinfo和http://en.wikipedia.org/wiki/List_of_tz_database_time_zones –
嗨迈克尔,此刻使用xslt 1。 – Mark