1
給定以下XML文檔。XSLT在SSIS XML任務中轉換,僅輸出XML文檔的某些節點
<?xml version="1.0" encoding="UTF-8"?>
<TrainingCenterDatabase
xsi:schemaLocation="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2 http://www.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd"
xmlns:ns5="http://www.garmin.com/xmlschemas/ActivityGoals/v1"
xmlns:ns3="http://www.garmin.com/xmlschemas/ActivityExtension/v2"
xmlns:ns2="http://www.garmin.com/xmlschemas/UserProfile/v2"
xmlns="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns4="http://www.garmin.com/xmlschemas/ProfileExtension/v1">
<Activities>
<Activity Sport="Other">
<Id>2017-01-13T19:26:50.000Z</Id>
<Lap StartTime="2017-01-13T19:26:50.000Z">
<TotalTimeSeconds>600.0</TotalTimeSeconds>
<DistanceMeters>0.0</DistanceMeters>
<Calories>42</Calories>
<AverageHeartRateBpm>
<Value>89</Value>
</AverageHeartRateBpm>
<MaximumHeartRateBpm>
<Value>100</Value>
</MaximumHeartRateBpm>
<Intensity>Active</Intensity>
<TriggerMethod>Manual</TriggerMethod>
<Track>
<Trackpoint>
<Time>2017-01-13T19:26:50.000Z</Time>
<AltitudeMeters>-51.599998474121094</AltitudeMeters>
<HeartRateBpm>
<Value>84</Value>
</HeartRateBpm>
<Extensions>
<ns3:TPX/>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2017-01-13T19:26:51.000Z</Time>
<AltitudeMeters>-51.599998474121094</AltitudeMeters>
<HeartRateBpm>
<Value>84</Value>
</HeartRateBpm>
<Extensions>
<ns3:TPX/>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2017-01-13T19:26:54.000Z</Time>
<AltitudeMeters>-0.6000000238418579</AltitudeMeters>
<HeartRateBpm>
<Value>84</Value>
</HeartRateBpm>
<Extensions>
<ns3:TPX/>
</Extensions>
</Trackpoint>
</Track>
<Extensions>
<ns3:LX/>
</Extensions>
</Lap>
<Creator xsi:type="Device_t">
<Name>Garmin Forerunner 910XT</Name>
<UnitId>3881635667</UnitId>
<ProductID>1328</ProductID>
<Version>
<VersionMajor>3</VersionMajor>
<VersionMinor>20</VersionMinor>
<BuildMajor>0</BuildMajor>
<BuildMinor>0</BuildMinor>
</Version>
</Creator>
</Activity>
</Activities>
<Author xsi:type="Application_t">
<Name>Garmin Connect API</Name>
<Build>
<Version>
<VersionMajor>16</VersionMajor>
<VersionMinor>23</VersionMinor>
<BuildMajor>0</BuildMajor>
<BuildMinor>0</BuildMinor>
</Version>
</Build>
<LangID>en</LangID>
<PartNumber>006-D2449-00</PartNumber>
</Author>
</TrainingCenterDatabase>
和下面的XSLT。 (我一直在嘗試各種不同的版本,但我甚至不能讓它出口任何東西)
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:gar="http://www.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:copy-of select="gar:TrainingCenterDatabase/gar:Activities/gar:Activity/gar:Track"/>
</xsl:template>
</xsl:stylesheet>
我撕裂了我的頭髮試圖導出XML的某些節點。
編輯。從XML中添加到命名空間中。 編輯。在命名空間和別名中添加。
我想要的是這個。
<Trackpoint>
<Time>2017-01-13T19:26:54.000Z</Time>
<HeartRateBpm>84</HeartRateBpm>
</Trackpoint>
<Trackpoint>
<Time>2017-01-13T19:26:54.000Z</Time>
<HeartRateBpm>84</HeartRateBpm>
</Trackpoint>
<Trackpoint>
<Time>2017-01-13T19:27:54.000Z</Time>
<HeartRateBpm>85</HeartRateBpm>
</Trackpoint>
<Trackpoint>
<Time>2017-01-13T19:28:54.000Z</Time>
<HeartRateBpm>90</HeartRateBpm>
</Trackpoint>
etc.
任何幫助表示讚賞。
看起來像您遇到命名空間的麻煩。 [這個問題]的答案(http://stackoverflow.com/questions/1730875/xslt-transform-xml-with-namespaces)可能會有所幫助。 – teppic
我用名稱空間更新了XLST。當我在選擇副本中使用「*」時它起作用。但任何時候我都可以改變它來尋找其他任何虛無n。。 –
您需要使用前綴 - 請參閱:http://stackoverflow.com/a/34762628/3016153請注意,XML(以及隨後的樣式表中)中的大部分名稱空間聲明都未使用,因此也是多餘的。 - 還要注意你顯示的輸出不是格式良好的XML(沒有單個根元素)。 –