嗨我試圖使用xsl將此xml轉換爲正確的格式。我是xsl的新手,並且遇到問題。我需要通過應用程序將xml導入到數據庫。使用xsl轉換xml用於集成系統
我不需要通知中的所有屬性。我已經嘗試了xsl中的for-each標籤。這循環遍歷項目,但我只想選擇其中的幾個,然後添加其他數據我自己像max:ponum,max:DOROLLOVER。
XML轉換:
<Notification>
<item name="NotificationName" type="Standard">CRHWTL01 Run Hours</item>
<item name="NotificationDescription" type="Standard">wind turbine location 01 run hours</item>
<item name="NotificationState" type="Standard">Trend</item>
<item name="StartTime" type="Standard">10/1/2014 4:35:00 PM</item>
<item name="EndTime" type="Standard">1/1/1970 12:00:00 AM</item>
<item name="TriggerTime" type="Standard">10/1/2014 5:05:00 PM</item>
<item name="Priority" type="Standard">Low</item>
<item name="Target" type="Standard">\\maximo\Turbines\Turbine1</item>
<item name="State" type="Standard">Trend</item>
<item name="NotificationInstanceID" type="Standard">1</item>
<item name="NotificationUniqueID" type="Standard">e4472d26-5366-4e57-bc7c-1af3beb50949</item>
<item name="\\Turbine1|Turbine OK Hours Status"
type="AFAttribute">19850</item>
</Notification>
所需的格式:
<?xml version="1.0" encoding="UTF-8"?>
<SyncMXMETERDATA xmlns:max="http://www.ibm.com/maximo" creationDateTime="2008-09-29T02:49:45" baseLanguage="string" transLanguage="string" messageID="string" maximoVersion="string">
<MXMETERDATASet>
<METERDATA action="Delete" relationship="string" ForInsert="string" transLanguage="string">
<CHANGEDATE changed="false">2008-11-15T16:52:58</CHANGEDATE>
<DOROLLOVER changed="true">false</max:DOROLLOVER>
<INSPECTOR changed="true">string</INSPECTOR>
<ISDELTA changed="false">true</ISDELTA>
<MEASUREDATE changed="true">2018-02-04T14:35:59+00:00</MEASUREDATE>
<MEASUREMENTID changed="true">10</MEASUREMENTID>
<MEASUREMENTVALUE changed="false">1.051732E7</MEASUREMENTVALUE>
<METERNAME changed="false">string</METERNAME>
<POINTNUM changed="true">string</POINTNUM>
<SITEID changed="false">string</SITEID>
</METERDATA>
</MXMETERDATASet>
</SyncMXMETERDATA>
我已經寫
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://http://www>w>org/2001/XMLSchema xmlns:maximoMappings="local" exclude-
result_prefixes="xs">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<SyncMXMETERDATA xmlns:max="http://www.ibm.com/maximo" messageID="string">
<MXMETERDATASet>
<METERDATA>
<MEASUREMENTVALUE><xsl:value-of
select="Notification[item/@name = 'Turbine1-Turbine OK Hours
Status']"/></MEASUREMENTVALUE>
<POINTNUM>GB1001</POINTNUM>
<DOROLLOVER changed="true">false</DOROLLOVER>
<ISDELTA changed="false">true</ISDELTA>
<MAXINTERRORMSG>string</MAXINTERRORMSG>
</METERDATA>
</MXMETERDATASet>
</SyncMXMETERDATA>
</xsl:template>
</xsl:stylesheet>
我這是進口,但我沒有得到我所需要的數據的XSL在數據庫中。任何幫助將不勝感激。
謝謝你,我沒有意識到我離開了所需格式的最大值。我回去了,改變了xsl,忽略了最大值,但忘記了輸出。有一些基本的錯誤,但是我花了相當長的時間纔得到這一點。再次感謝matthias_h – Eoin 2014-10-03 15:25:34
@Eoin,請[**接受**](http://meta.stackoverflow.com/q/5234/234215)matthias_h的答案,如果它的幫助。謝謝。 – kjhughes 2014-10-03 15:31:39