我試圖將時區值從一個系統轉換爲另一個值以推送到另一個系統。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